我在學習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,我不確定哪些是用於解決這個問題的正確工具,或者它們是否是適當的工具。解決這類問題的正確方法是什麼?