React Action Callback 做过渡最佳实践

React Action Callback do transition best practice

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

当前代码:

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 的情况下进行调度?

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

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

有关使用 alt 库进行助焊剂的很好的教程可以在这里找到:http://alt.js.org/guide/