我们假设我有一个Modal
组件,当用户关闭它时会触发MODAL_CLOSE
操作。
假设我有一个应用程序在许多不同的地方使用Modal
组件,在某些情况下我想在触发MODAL_CLOSE
事件时更改应用程序存储。
让一个用户缩减器监听MODAL_CLOSE
操作以对商店的用户部分进行任何更改是否正确?或者通过这样做,我实际上是在用户“域”和Modal
组件之间创建耦合?
在这种情况下,最佳做法是什么?
答案 0 :(得分:1)
我说它很好,因为它没有与组件耦合,connect
调用正在进行耦合。
您的reducer不依赖于组件的实现甚至组件的存在,只是有一个动作MODAL_CLOSE(D?)
。
同样,您的组件没有耦合或意识到减速器的逻辑。
答案 1 :(得分:0)
我认为这是正确的。你会在关闭它有特殊行为的地方使用类似<Modal onClose={closeModalAndDoSomethingAction}
的东西。然后Modal
组件可以调度其默认的onClose
操作,如果通过prop提供,则可以调用特殊操作。特殊操作可以是MODAL_CLOSE
以外的其他操作,也可以在有效负载中包含减速器需要区分的内容。