gpt4 book ai didi

javascript - 如何等待另一家商店在一家商店发生的发货

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:29:41 27 4
gpt4 key购买 nike

我正在使用来自 Facebook 的 Flux、react、ES6。

我在处理那些单例商店时遇到了不同的问题。但是,经常出现的是以下内容。我从一个组件发送一个 Action ,并且我有两个商店(StoreA、StoreB)正在监听该 Action 。

我的两个商店位于两个不同的文件中,在每个文件中,我都导出了单例商店实例。这两个商店都已经导入到它们的相关容器中(一个 React 组件 View )。我希望 StoreA 在开始 StoreA 中的流程之前等待 StoreB 完成当前调度的处理。

我已经阅读了文档,其中有一个 waitFor 方法可以与调度程序的 register 方法返回的 token 一起使用。但是我的两个商店在不同的文件中。找不到从 StoreA 访问 StoreB 的调度 token 的方法...

换句话说:

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..

最佳答案

将 Store 导入 Store,您应该能够引用 token :

import StoreA from 'path/to/StoreA.js';
// or if you're not using es6 imports:
// const StoreA = require('path/to/StoreA.js');

class StoreB {
constructor() {
dispatcher.register((action) => {
switch(action.type) {
case 'ACTION1':
dispatcher.waitFor([StoreA.dispatchToken]);
break;
}
});
}
}

export default new StoreB();

关于javascript - 如何等待另一家商店在一家商店发生的发货,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34006909/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com