Изменить свойство или состояние в хранилище 1 с действия в хранилище 2

Можно ли изменить состояние какого-то магазина от действия другого магазина. Я обычно использую Inject для всех компонентов, но я думаю, что они не работают для магазинов.

У меня есть специальный магазин, который контролирует состояние всплывающего окна уведомлений. Было бы здорово изменить его состояние открытия/закрытия и сообщение о действиях всех других хранилищ, в которых я выполняю вызовы ajax.


person user3888540    schedule 11.12.2016    source источник


Ответы (1)


Вероятно, было бы проще просто импортировать ваше хранилище уведомлений в другие хранилища и вызвать какое-то действие таким образом:

// notificationStore.js
class NotificationStore {
  @observable notif = { state: 'closed', msg: '' };
  @action changeState(state, msg) {
    this.notif.state = state;
    this.notif.msg = msg;
  }
}

export default new NotificationStore();

// otherStore.js
import notificationStore from './notificationStore.js'

class OtherStore {
  @action someAction(someData) {
    // Some code...
    notificationStore.changeState('open', 'someAction complete');
  }
}
person Tholle    schedule 12.12.2016