Как использовать обратный вызов в DIspatch в Redux? - PullRequest
0 голосов
/ 21 ноября 2018

Я просматривал документацию на Redux, и в документации не было поля обратного вызова.Но есть обратный вызов в методе setState.Разве метод отправки не отвечает за функцию setState?Как я могу иметь обратный вызов в методе отправки редукса?

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Причина, по которой React setState имеет параметр обратного вызова, заключается в том, что обновления состояния React являются асинхронными.Необходимо выполнить код, который зависит от обновленного состояния:

this.setState(..., () => {
  console.log('state updated');
});

Это не относится к Redux.dispatch является синхронным, и поэтому не имеет смысла иметь обратный вызов там.Ожидается, что действие было отправлено сразу после вызова dispatch:

dispatch(...);
console.log('store updated');

Разве метод отправки не отвечает за функцию setState?

Это не так.Redux store является альтернативой состоянию компонента React.Он не использует setState внутри.

0 голосов
/ 21 ноября 2018

Метод отправки в redux не может иметь обратного вызова.Однако Redux предоставляет вам store.subscribe ().

С помощью этой функции вы можете добавить в хранилище прослушиватели событий, которые будут срабатывать при каждом изменении состояния, поэтому вы можете сделать что-то вроде этого:

const callback = () => {
  //check the store for your specific state change
  //perform some action
}
store.subscribe(callback) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...