@Muramidaza

Как изменить mobx в классе?

Как вызвать экшн в классе стора mobx и изменить данные в сторе из другого класса?

То есть есть класс DataService, в его методе нужно вызвать метод класс стора mobx (экшн), который изменит данные в сторе. В функциональном стиле это const { callsStore, dataStore } = useRootStore();
callsStore.setCall(...);

Как это сделать в классе? В этом классе нет рендеринга, он производит операции с данными и должен возвратить полученное в стор. Данные потом отобразятся в функциональных элементах экранов.
  • Вопрос задан
  • 39 просмотров
Пригласить эксперта
Ответы на вопрос 1
Alexandroppolus
@Alexandroppolus
кодир
в метод класса DataService надо передать экземпляр стора:
class DataService {
  method(callsStore) {
    ...
    callsStore.setCall(...);
  }
}


----
Но вообще, по идее, правильнее (имхо, конечно), чтобы DataService только возвращал данные в виде промиса. А вызывать его метод, получать данные и складывать их в стор будет какой-то посредник. Либо стор "сам себе на уме" и может самостоятельно обновлять свои данные, используя сервис (экземпляр которого передали ему в конструктор, например). Впрочем, это всё дело вкуса.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы