Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将一个存储注入mobX中的另一个存储_Javascript_Meteor_Store_Mobx_Mobx React - Fatal编程技术网

Javascript 如何将一个存储注入mobX中的另一个存储

Javascript 如何将一个存储注入mobX中的另一个存储,javascript,meteor,store,mobx,mobx-react,Javascript,Meteor,Store,Mobx,Mobx React,我将mobX与React和Meteor结合使用,我需要能够使用保存在一个商店中的信息。具体地说,我需要在Store B中有一个Store a的引用,以便调用Store a的操作并获取它通过订阅集合检索到的信息。我使用了@injectdecorator,但不知道如何调用该操作。谢谢@inject用于将提供程序中的内容注入React组件,而不是在商店之间 您可以将第一个存储导入第二个存储,然后立即调用该操作 示例 // store1.js import { observable, action }

我将mobX与React和Meteor结合使用,我需要能够使用保存在一个商店中的信息。具体地说,我需要在Store B中有一个Store a的引用,以便调用Store a的操作并获取它通过订阅集合检索到的信息。我使用了@injectdecorator,但不知道如何调用该操作。谢谢

@inject
用于将
提供程序
中的内容注入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();

您可以通过以下步骤来完成

// 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();

我不明白为什么每个人都建议依赖模块缓存作为数据存储(导出类实例,然后导入它)。这很容易打破。[更新:]我从通用体系结构的角度找到了一个有效的解决方案:最好有一个根存储,这样可以让不同的存储访问数据。应用程序的不同组件访问相同数据的必要性非常普遍,为了避免冗余,可以将架构分为两个级别。