【发布时间】:2016-03-04 13:54:04
【问题描述】:
我正在使用来自 Facebook、React、ES6 的 Flux。
我对那些单身商店有不同的问题。然而,反复出现的情况如下。我从一个组件调度一个动作,并且我有两个商店(StoreA、StoreB)监听该动作。
我的两个商店位于两个不同的文件中,并且在每个文件中,我都导出了单例商店实例。两个商店都已经导入到它们的相关容器中(React 组件视图)。我希望 StoreA 等待 StoreB 完成对当前调度的处理,然后再开始 StoreA 中的进程。
我已经阅读了文档,并且有一个 waitFor 方法可以与调度程序的 register 方法返回的令牌一起使用。但是我的两个商店在不同的文件中。找不到从 StoreA 访问 StoreB 的调度令牌的方法...
换句话说:
ReactComp.js
...
handleClick() {
dispatcher.dispatch({
type: 'ACTION1'
});
}
StoreA.js
class StoreA {
constructor() {
this.dispatchToken = dispatcher.register((action) => {
switch(action.type) {
case 'ACTION1':
// do something...
break;
}
});
}
}
export default new StoreA();
StoreB.js
class StoreB {
constructor() {
dispatcher.register((action) => {
switch(action.type) {
case 'ACTION1':
dispatcher.waitFor([storeADispatchToken]); //how to get the dispatchToken from Store A...
break;
}
});
}
}
export default new StoreB();
我是 React 和 Flux 架构的新手,如果是这样,答案可能很明显,很抱歉,但是我花了很多时间来寻找答案,但没有成功,我打赌 SO..
【问题讨论】:
标签: javascript reactjs ecmascript-6 flux