我有一个更新Redux中的某些搜索条件的操作。我想立即从基于本地标准的API获取一些数据。问题是,虽然搜索条件动作分派是同步的,但在搜索结果分派开始之前它不会完成。如何在Redux中完成另一个同步操作时分派操作
在这个例子中,该标准将不会在API调用之前更新:
this.props.dispatch(updateLocalCriteria(someData));
this.props.dispatch(fetchApiResults(this.props.criteria))
我失去了一些东西明显?我可以想到一些简单的方法来处理这个问题,但最好的方法是什么?我应该在搜索条件更新时设置一个标志,并且如果标志为真,则在componentDidUpdate()
中获取结果?或者我应该使updateLocalCriteria()
异步,以便我可以在承诺链中链接fetchApiResults()
?
编辑
我想我已经找到了我的答案。我可以在fetchApiResults()
之内获得当前状态。因此,我可以在进行api调用之前获取当前的搜索条件。
function fetchApiResults() {
return (dispatch, getState) => {
const state = getState();
// fetch data and dispatch...
'updateLocalCriteria()'只更新条件的一个属性,但我想将所有条件发送到'fetchApiResults()'。我想在调用'fetchApiResults()'之前,我仍然需要在'updateCriteriaAndFetch()'中获取当前状态。 –
在这种情况下是的 –