2017-02-16 71 views
0

如果动作创建者想要修改两个组合的减速器状态, 那么,什么是更好的:组合减速器最佳实践

  1. 动作创建者调度两种动作类型?
  2. 动作创建者分派一个动作类型,两个reducer听这个动作?
  3. 当我无法向Reducer订阅动作时(即反应路由器的缩减器),我唯一的解决方案是分发我的reducer动作,然后分配动作创建者的结果(即响应路由器的推动或替换)作为使用thunk或传奇的副作用

你们认为什么?

+1

“两国”这句话令人困惑。一个商店只有一个国家。你是指状态树的两个属性?或者你的应用有两个商店? –

+0

我通常会和#2一起去,除非以后再推理会很混乱。但是,这*可能表示您没有正确划分减速器。 –

回答

1

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

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

我也在我的文章Idiomatic Redux: Thoughts on Thunks, Sagas, Abstraction, and Reusability中谈到了这个话题。