如何在mobX中将商店注入另一个商店

Tin*_*ssi 4 javascript store meteor mobx mobx-react

我将mobX与React和Meteor结合使用,我需要能够将一个商店中保存的信息用于另一个商店.具体来说,我需要在商店B中引用商店A,以便调用商店A的操作,并通过订阅集合获取它已检索到的信息.我使用了@inject装饰器,但不知道如何调用该动作.谢谢

Tho*_*lle 5

@inject用于将某些内容从ProviderReact组件中注入,而不是在商店之间注入.

您可以将第一个商店导入第二个商店并立即调用该操作.

// 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();
Run Code Online (Sandbox Code Playgroud)

  • 我不明白为什么每个人都建议依赖模块缓存作为数据存储(导出类实例然后导入它).这可以很容易地打破. (2认同)