У меня есть два магазина, и второй магазин должен обновляться на основе обновлений из первого магазина.Первый магазин:
import {decorate} from 'mobx';
export class EntryStore {
constructor (parent_store) {
this.parent_store = parent_store;
this.entries = [];
console.log('----------------------');
setTimeout(() => this.entries.push({event: 0, id: 0}), 1000);
console.log('constructed;')
}
}
decorate(EntryStore, {
entries: observable,
});
Второй магазин:
import {decorate, reaction} from 'mobx';
export class EventStore {
constructor(parent_store) {
this.parent_store = parent_store;
this.events = new Map();
this.entry_load_disposer = reaction(
() => this.parent_store.entryStore.entries.map(e => e),
async (event_ids) => {
console.log('we are getting events');
return this.loadSomeDataPromise();
}
);
}
}
decorate(EventStore, {
events: observable,
});
И для полноты пользы "parent_store":
import {EventStore} from "./EventStore";
import {EntryStore} from "./EntryStore";
export default class RootStore {
constructor() {
this.entryStore = new EntryStore(this);
this.eventStore = new EventStore(this);
}
}
Я ожидаю, что реакция запуститсяmsgstr "сразу после загрузки entryStore".однако это не так, реакция не запускается вообще.Как так?Где я допустил ошибку?