案例是我通过一个动作点击给我的用户添加一个新项目。添加Items时,将更新ActiveItemStore,然后我想导航到活动Item。但目前在更新商店之前调用了转换。
当前代码:
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的情况下避免派遣调度?
答案 0 :(得分:1)
简而言之:Action函数不应该有回调来进行转换。典型的流程是:
可以在此处找到有关使用alt库for flux的优秀教程:http://alt.js.org/guide/