结合减速器最佳实践

时间:2017-02-16 14:35:37

标签: redux react-router

在redux中,

如果动作创建者想要修改两个组合的减速器状态。 然后,它有什么好处:

  1. 动作创建者会调度两种动作类型吗?
  2. 动作创建者调度一个动作类型,两个减速器听取该动作?
  3. 当我无法订阅减速器的动作时(即反应路由器的减速器),我唯一的解决方案就是调度我的减速器动作然后调度动作创建者的结果(即反应路由器' s推或替换)使用thunk或saga作为副作用
  4. 你们有什么想法?

1 个答案:

答案 0 :(得分:1)

要么是可行的方法。 Redux常见问题解答在"Should I dispatch multiple actions in a row from one action creator?"

下解决了这个问题
  

一般来说,询问这些行为是否相关但是独立,或者实际上应该表示为一个行动。做适合自己情况的事情,但尝试平衡减速器的可读性和动作日志的可读性。例如,包含整个新状态树的操作会使您的reducer成为一个单行,但缺点是现在您没有发生更改的原因,因此调试变得非常困难。另一方面,如果您在循环中发出操作以保持细化,则表明您可能想要引入以不同方式处理的新操作类型。

我还在文章Idiomatic Redux: Thoughts on Thunks, Sagas, Abstraction, and Reusability中讨论了这个主题。