Выглядит так, что реакции — это что-то вроде триггеров, которые срабатывают после завершения асинхронных экшенов. То есть просто декомпозиция промисов (можно обойтись без реакций и весь асинхронный код прописать в одном экшене). Это правильный подход или они вообще для другого?
import { makeAutoObservable } from 'mobx';
export class LoginFormStore {
isLoading = false;
// Login field
loginFieldValue = '';
loginFieldTitle = 'Логин';
loginErrorMessage = '';
// Password field
passwordFieldValue = '';
passwordFieldTitle = 'Пароль';
passwordErrorMessage = '';
constructor() {
makeAutoObservable(this);
}
sendFormAction(ev) {
/**
* Компонент кнопки рендерится в лоудер
*/
this.isLoading = true;
/**
* Отправляю запрос на сервер. В колбеке промиса вызываю sendFormReaction,
* передавая в этот метод ответ сервера.
*/
...
}
sendFormReaction(rs) {
/**
* Кнопка снова становится активной
*/
this.isLoading = false;
/**
* Обрабатываю данные, полученные из ответа сервера (например, меняю стейт
* полей с ошибками, если какие-то данные не прошли валидацию на сервере
*/
...
}
}
Соответствующий раздел
справки читал, но пока понял то, что я скорее всего не правильно их толкую.