Я всегда использовал redux-thunk или какое-то промежуточное программное обеспечение, которое дает мне доступ к dispatch/getState
, но у меня есть вопрос, который продолжает меня беспокоить. Зачем использовать это, когда мы можем import
наш store
и вызвать store.dispatch()/store.getState()
.
Позже отредактировать:
В качестве быстрого примера, вот оригинальный код:
function loadData(userId) {
return dispatch => fetch(`http://data.com/${userId}`) // Redux Thunk handles these
.then(res => res.json())
.then(
data => dispatch({ type: 'LOAD_DATA_SUCCESS', data }),
err => dispatch({ type: 'LOAD_DATA_FAILURE', err })
);
}
По сути, я спрашиваю, почему так плохо переписать это как:
import store from 'our-store';
function loadData(userId) {
return fetch(`http://data.com/${userId}`)
.then(res => res.json())
.then(
data => store.dispatch({ type: 'LOAD_DATA_SUCCESS', data }),
err => store.dispatch({ type: 'LOAD_DATA_FAILURE', err })
);
}