我将mobX与React和Meteor结合使用,我需要能够将一个商店中保存的信息用于另一个商店。具体来说,我需要在商店B中引用商店A,以便调用商店A的操作,并通过订阅集合来获取它已检索到的信息。我使用了@inject装饰器,但不知道如何调用该动作。谢谢
答案 0 :(得分:5)
@inject
用于将Provider
中的内容注入React组件,而不是商店之间。
您可以将第一家商店导入第二家商店并立即调用该操作。
示例强>
// store1.js
import { observable, action } from 'mobx';
class Store1 {
@observable count = 0;
@action increment() {
++this.count;
}
}
export default new Store1();
// store2.js
import { observable, action } from 'mobx';
import store1 from './store1';
class Store2 {
@observable name = 'foobar';
constructor() {
store1.increment();
}
@action changeName(name) {
this.name = name;
}
}
export default new Store2();
答案 1 :(得分:0)
您可以按照以下步骤操作
// store1.js
import { observable, action } from 'mobx';
class Store1 {
@observable count = 0;
@action increment() {
++this.count;
}
}
export default new Store1();
// store2.js
import { observable, action } from 'mobx';
import store1 from './store1';
const store = new store1()
class Store2 {
@observable name = 'foobar';
@action changeName(name) {
this.name = name;
}
@action
increment(){
store.increment();
}
}
export default new Store2();