使用redux纠正反应组件的相互作用

时间:2018-03-12 09:52:48

标签: reactjs redux react-redux

我们假设我有一个Modal组件,当用户关闭它时会触发MODAL_CLOSE操作。

假设我有一个应用程序在许多不同的地方使用Modal组件,在某些情况下我想在触发MODAL_CLOSE事件时更改应用程序存储。

让一个用户缩减器监听MODAL_CLOSE操作以对商店的用户部分进行任何更改是否正确?或者通过这样做,我实际上是在用户“域”和Modal组件之间创建耦合?

在这种情况下,最佳做法是什么?

2 个答案:

答案 0 :(得分:1)

我说它很好,因为它没有与组件耦合,connect调用正在进行耦合。 您的reducer不依赖于组件的实现甚至组件的存在,只是有一个动作MODAL_CLOSE(D?)。 同样,您的组件没有耦合或意识到减速器的逻辑。

答案 1 :(得分:0)

我认为这是正确的。你会在关闭它有特殊行为的地方使用类似<Modal onClose={closeModalAndDoSomethingAction}的东西。然后Modal组件可以调度其默认的onClose操作,如果通过prop提供,则可以调用特殊操作。特殊操作可以是MODAL_CLOSE以外的其他操作,也可以在有效负载中包含减速器需要区分的内容。