Правильно ли я понимаю?
У нас есть асинхронный экшн в отдельном файле. Мы можем импортнуть
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 })
);
}