【问题标题】:React Action Callback do transition best practiceReact Action Callback 做转换的最佳实践
【发布时间】:2015-12-06 17:39:33
【问题描述】:

案例是我通过点击操作向我的用户添加一个新项目。添加项目后,ActiveItemStore 将被更新,然后我想导航到活动项目。但目前在 Store 更新之前调用转换。

当前代码:

var actionListener = new ActionListeners(alt);
var listenerRef = actionListener.addActionListener(MyItemActions.ADDED,
    function() {
        setTimeout(function() { // Fixes Cannot dispatch in the middle of a dispatch.
             this.transitionTo('active-item', {locale: user.locale});
             // will be called before the ActiveItemStore is updated
        });
    }.bind(this));
    actionListener.removeActionListener(listenerRef);
}.bind(this));

// call action
MyItemActions.add({
    id: item.id,
    active: true
});

在这种情况下我是否需要使用waitFor 或最佳实践是什么,以及如何避免在没有 setTimeout 的情况下分派?

【问题讨论】:

    标签: javascript reactjs reactjs-flux flux react-alt


    【解决方案1】:

    简而言之:Action 函数不应该有回调来进行转换。典型的流程是:

    1. 您的视图听取商店的变化
    2. 在您看来,用户点击了某些东西
    3. 视图调用动作(无超时)
    4. 然后商店响应操作,可能是对活动项的更新。
    5. 视图注意到存储的更新,然后转换到新状态。

    可以在此处找到有关使用 alt 库进行通量的良好教程:http://alt.js.org/guide/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-18
      • 1970-01-01
      • 2016-05-02
      • 2019-02-19
      • 1970-01-01
      • 1970-01-01
      • 2022-12-01
      • 2012-11-17
      相关资源
      最近更新 更多