我在学习Redux,并且遇到了一个问题,即在我更新另一个分支(分支B)之前确保我的状态树的分支(分支A)已完成其更新。分支B取决于分配给分支A中新更新项目的ID,因此我希望分支B的更新功能在分派A更新分派功能完成后分派。我有多个reducer对应于各个分支,我正在使用combineReducers来组合它们。调用状态在Redux中依次变更Reducer函数
我用下面的派遣行动从组件更新分公司答:
/* update Branch A */
this.props.dispatch(actions.addCriterion(this.state));
按顺序调度上的代码产生分行A没有看到更新的状态信息的下一行更新分公司B中的作用由分公司A派遣引起。
/* update Branch B */
this.props.dispatch(actions.completeScoreGrid(this.props.alternatives, this.props.criteria));
然而,一切正常,如果我使用setTimeout和等待一个有点后分派调用B.在这种情况下之前的状态更新完成,并根据需要B见的一切它应该
/* update Branch B after a 1 second pause */
var that = this;
setTimeout(function() {
that.props.dispatch(actions.completeScoreGrid(that.props.alternatives,
that.props.criteria));
}, 1000);
但是,我确定使用设置超时不是这样做的正确方法。我看起来像是redux-thunk,redux-promise,redux-promise-middleware和redux-saga,我不确定哪些是用于解决这个问题的正确工具,或者它们是否是适当的工具。解决这类问题的正确方法是什么?