【问题标题】:Can I make store update thenable in react redux app?我可以在 react redux 应用程序中进行商店更新吗?
【发布时间】:2017-09-04 15:07:12
【问题描述】:
我在更新我的 react redux 应用程序商店时遇到问题。
我怎样才能使商店更新可以?
如你所知,所有状态的更新都是异步的,所以如果我做一些状态更新的回调函数,我们必须使用 componentDidUpdate 方法。但这些有时很复杂。我想通过使它们成为可调用的方法来使这变得简单。有没有人有什么想法?
【问题讨论】:
标签:
reactjs
redux
react-redux
【解决方案1】:
reducer 函数应该是纯的,因此不应该存在异步逻辑。
您可能感兴趣的中间件很少:
redux-thunk 允许您拥有一个返回函数的动作创建者,该函数将来自 store 的 dispatch 和 getState 注入到正常动作中,这意味着可以根据需要延迟调度。但它的力量有限。 (你可能不需要更多)
redux-saga 使用生成器从数据角度解释所有副作用和异步操作。它比 thunk 更强大,你可以做复杂的异步交互,例如多个动作之间的竞速。但缺点是您需要创建更多操作,以及操作依赖导致的不可预测性。
redux-observable 据称比 saga 更复杂。它基于Rx 可观察流,您可以使用map flatMap filter 操作动作流,这类似于数组的方法,但您可以使用更多。对我来说,它的界面看起来比 saga 好得多。有些人可能会反对理解 Rx 所需的学习曲线。