我正在使用Alt库来实现Flux架构。我有一个组件,显示有关电影的信息。现在我陷入了需要在我的主页下呈现这些组件数组的情况。问题是这些组件中的每一个都在ajax request
内调用componentDidMount
。所以,当我有一个以上 - 我得到:
Uncaught Error: Invariant Violation: Dispatch.dispatch(...): Cannot dispatch in the middle of a dispatch.
我写了一篇较长的帖子here,这是一个更简洁的版本。我根本无法理解问题的本质。
编辑:用图片澄清。基本上我得到第一个组件的海报,第二个组件抛出错误并停止工作:
答案 0 :(得分:0)
经过几天的研究和一些帮助,我解决了问题。
简单的答案是:你做不到。这被认为不仅是不好的做法,而是 Flux 反模式,因此受到标准Facebook调度员的限制(这是 Alt 使用的)。正确的方法是从最顶层组件处理操作和商店。您也可以使用自定义调度程序,但我想它不会无缘无故限制。
在我的情况下,这是HomePage组件,我所做的是触发单个动作,它获得了所有电影海报,然后用道具传递了这些信息。
据我所知,最佳做法是在最顶层处设置容器组件,这只负责操作和商店。然后在容器内部 - 一个视图组件(一个或多个),负责呈现UI和数据。我发现this文章内容丰富。