我觉得这个问题的副标题是“Fluxxor是否希望我的应用程序正常工作?”。毫无疑问,我还没有掌握如何与Fluxxor合作......
错误是:
在调度另一个操作('FIRST_AJAX_REQUEST_IS_RETURNED')时无法调度操作('NEXT_AJAX_REQUEST_IS_ABOUT_TO_BE_MADE')
组件A是组件B的所有者
组件A在其componentWillReceiveProps中调用操作创建者。此动作创建者发出AJAX请求。如果成功,我们将FIRST_AJAX_REQUEST_IS_RETURNED与一些数据一起发送到商店。商店更新。它会发生变化。组件A正在侦听此更改。组件A更新其状态。组件A重新呈现将此状态作为props传递给组件B.组件B中的组件B调用操作创建者根据其现有数据发出第二个AJAX请求。在发出实际的AJAX请求之前,动作创建者调度NEXT_AJAX_REQUEST_IS_ABOUT_TO_BE_MADE - 以便将商店置于特定状态。
我得到关于调度一个动作而另一个动作正在进行中的消息,因为Fluxxor没有考虑第一个动作完成 - 即使在AJAX请求完成并且我有数据之前我不能做第二个动作。问题似乎是调用子组件的componentWillReceiveProps方法中的第二个操作,以响应第一个操作引起的所有者组件状态的变化。
因此。我尝试将第二个动作移动到第一个商店中成功的'回调'。我仍然得到同样的信息。即使这是正确的事情......
第二个操作取决于第一个操作中包含的数据。我无法将这两者合并为一个请求/操作,然后使用waitFor。
更新2个商店答案 0 :(得分:0)
http://fluxxor.com/guides/react.html#batched-updates
这解决了它。
然而,我不明白为什么,如果有人有这个原因,我会非常感谢。
我认为结果是,在getStateFromFlux引起的状态更改完全完成之前,组件A不会重新呈现。因此,当组件B调用其动作创建者时,我们现在完全完成了第一个操作。
这大致正确吗?