这要么是一个大错误,要么我无法理解为存储触发的不同操作使用不同的 View (React)处理程序的有用性(如果每个操作都调用所有处理程序)。
这就是我的意思:https://jsfiddle.net/69z2wepo/10946/
预期输出:
action 1 handler triggered from action 1
-----------------
action 2 handler triggered from action 2
我实际得到的是:
action 1 handler triggered from action 1
action 2 handler triggered from action 1
-----------------
action 1 handler triggered from action 2
action 2 handler triggered from action 2
只要看看这个输出,我就可以说这是错误的。但要澄清的是:操作 1 应该只触发操作 1 的处理程序,操作 2 应该只触发操作 2 的处理程序。
我做错了什么吗?
请帮忙!
P.S: 我还尝试手动使用 ComponentDidMount 和 this.listenTo;相同的行为。
最佳答案
从概念上讲,我认为您对 Flux 略有误解。该组件不监听操作/事件,而是监听存储中数据的更改。因此,您所看到的是正确的,因为在这两种情况下您都使用 trigger
来指示商店已更改。
该组件只关心触发操作,而不是消耗它们。因此,将组件中的 onAction1
和 onAction2
标记为“处理程序”并不正确。
关于javascript - 触发操作时出现回流错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31039955/