Вот как бы я подошел к этой проблеме.
Мое решение также распространяется на все будущие свойства каждого магазина.
Магазин 1 и Магазин 2 имеют общий список категорий, а Магазин 3 имеет отдельный список.
import { observable, action, computed } from "mobx";
Создайте 3 магазина по мере необходимости со ссылками на Root Store
class Store1 {
constructor(instance) {
this.categories = instance.sharedCategories;
}
}
class Store2 {
constructor(instance) {
this.categories = instance.sharedCategories;
}
}
class Store3 {
constructor(instance) {
this.categories = instance.singleCategories; }
}
Создать магазин категорий, в котором находится массив категорий.
class CategoricalStore {
@observable categories = [];
@action.bound
addCategory(data) {
this.categories.push(data);
}
}
Root Store, в котором хранятся оба списка категорий и все 3 магазина.
class RootStore {
constructor() {
this.sharedCategories = new CategoricalStore();
this.singleCategories = new CategoricalStore();
this.store1 = new Store1(this);
this.store2 = new Store2(this);
this.store3 = new Store3(this);
}
}
export default RootStore;
RootStore.sharedCategories.addCategory(any)
- как обновить оба магазина.
Я также предложил пример CodeSandbox , написанный в React.