【问题标题】:How to properly chain actions in Flux (alt)如何在 Flux 中正确链接操作(替代)
【发布时间】:2016-10-19 17:37:09
【问题描述】:

我正在开发 React 项目,我们正在使用 Alt 库来处理操作和存储。我找不到答案,如何在不诉诸 setTimeout() 或以其他方式破解 Flux 范式的情况下链接两个操作。

我的理解是 React 组件中发生了一个事件,该事件触发了一个 Action,该 Action 级联到 Stores。不允许商店在其他商店中发起任何新操作或修改数据。但有时我们需要按顺序链接多个操作。是否可以产生两个动作,一个会在另一个完成时监听?

考虑一个例子。 一群人站在一辆车旁边。一个事件促使他们上车并开始驾驶。在 Flux 的世界中,可以将其视为“Get in”和“Go”两个动作。每个人(将他们视为“商店”)都是独立的,并且可能需要不同的时间才能入座。驾驶员需要确保每个人都坐好,然后再进行下一个动作——“Go”。并且“Go”不能只限于司机 - 它可以对其他乘客产生影响(如晕车)。

这如何在 Flux (Alt) 中实现?

【问题讨论】:

    标签: javascript reactjs flux alt


    【解决方案1】:

    也许action.defer 是你需要的。

    CarActions.getIn(driver,passengers)
    CarActions.go.defer(driver)
    

    【讨论】:

      【解决方案2】:

      实际上,一个动作可以触发多个动作。 Observable 和 Promise 对于链接多个动作调度非常有用。如果您想尝试 observable,请查看 RxJS。为了保证,我使用了blue bird

      如果您使用 Redux,请查看 Redux-thunk,它实际上提供了 setTimeout 的替代方案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-07-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-31
        • 1970-01-01
        • 1970-01-01
        • 2012-11-14
        相关资源
        最近更新 更多