@lexstile

Разница в подходах — store.dispatch vs middleware?

Правильно ли я понимаю?
У нас есть асинхронный экшн в отдельном файле. Мы можем импортнуть store и воспользоваться store.dispatch?
А можем воспользоваться middleware - тем же redux thunk и принять тот же dispatch в аргументах:
function loadSomeData(userId) {
  return dispatch => fetch(`http://data.com/${userId}`)
    .then(res => res.json())
    .then(
      data => dispatch({ type: 'LOAD_SOME_DATA_SUCCESS', data }),
      err => dispatch({ type: 'LOAD_SOME_DATA_FAILURE', err })
    );
}


Какой подход лучше и почему? (если я правильно все понял)
Можем еще прокидывать dispatch в качестве аргумента (но сейчас не об этом):
function loadSomeData(dispatch, userId) {
  return fetch(`http://data.com/${userId}`)
    .then(res => res.json())
    .then(
      data => dispatch({ type: 'LOAD_SOME_DATA_SUCCESS', data }),
      err => dispatch({ type: 'LOAD_SOME_DATA_FAILURE', err })
    );
}
  • Вопрос задан
  • 30 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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