不要在redux中有选择地响应subscribe()

时间:2017-08-03 14:34:01

标签: reactjs redux react-redux

我在我的应用程序中使用Redux。一个我的页面,我有5个控件订阅商店。但是在某些特定操作的情况下,我不希望2个控件响应更改。我该如何处理这种情况。

我查看了这个链接https://github.com/reactjs/redux/issues/580,但找不到像store.getState().lastAction这样的内容。

处理这种情况的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

你所在州应该有一面旗帜,说明你是否应该更新你的控制。 Redux的基本原则之一是不允许客户端知道商店的更新方式。您应该只响应状态变化,无论状态如何变化。

但我真的不明白为什么你必须亲自处理商店变化?您应该考虑使用[ [{'date': 20170728, 'group': 121}], [{'date': 20170729, 'group': 131}], [{'date': 20170729, 'group': 134}, {'date': 20170729, 'group': 145}]] ]

修改

正如评论中所指出的,如果你在调度动作时需要做一些副作用,你应该使用一些redux中间件,例如redux-thunkredux-sagaredux-observable,{{3} }。对于初学者来说,最简单的一个是redux-loop。它允许您分派一个将要执行的简单函数,并且还可以调度其他操作。

但是,要触发每个操作的副作用并且能够按操作类型进行过滤,请参阅@Brandon评论中指出的redux-thunk