【问题标题】:How to fire actions simultaneously from multiple components with Alt (Flux)如何使用 Alt (Flux) 从多个组件同时触发动作
【发布时间】:2017-11-27 07:15:36
【问题描述】:

我正在使用 Alt 库来实现 Flux 架构。我有一个组件,它显示有关电影的信息。现在我陷入了需要在主页下呈现此类组件数组的情况。问题是这些组件中的每一个都在componentDidMount 内部调用ajax request。所以当我有不止一个时 - 我得到:

Uncaught Error: Invariant Violation: Dispatch.dispatch(...): Cannot dispatch in the middle of a dispatch.

我写了一个更长的帖子here,这是一个更简洁的版本。我根本无法理解问题的本质。

编辑:用图片说明。基本上我得到了第一个组件的海报,第二个它抛出一个错误并停止工作:

【问题讨论】:

    标签: reactjs design-patterns flux reactjs-flux


    【解决方案1】:

    经过几天的研究和一些帮助,我的问题得到了解决。

    简单的答案是:你不能。这不仅被认为是不好的做法,而且是 Flux 反模式,因此受到标准 Facebook 调度程序的限制(这是 Alt 使用的)。正确的方法是从 top-most 组件处理 actionsstores。您也可以使用自定义调度程序,但我想它不会无缘无故地受到限制。

    在我的例子中是 HomePage 组件,我所做的是触发单个 action,它会获取所有电影海报,然后通过 props 传递这些信息。

    据我了解,最佳做法是在最顶层放置一个容器组件,它只负责操作商店。然后在容器内部 - 一个视图组件(一个或多个),负责渲染 UI 和数据。我发现this 文章内容丰富。

    【讨论】:

      猜你喜欢
      • 2015-09-21
      • 1970-01-01
      • 2016-07-18
      • 2016-02-10
      • 2015-10-18
      • 2015-10-16
      • 2016-11-20
      • 2015-11-09
      • 1970-01-01
      相关资源
      最近更新 更多