Можете ли вы поделиться со мной своим thunk?Thunks возвращает функции, которые промежуточное программное обеспечение thunk передает диспетчеру и вызывает.Если вы отправляете действие внутри функции, которую возвращает thunk, вы увидите отправку.Это просто не будет от thunk.Пример:
export const gotSomething = data => {
return {
type: GOT_SOMETHING,
data,
};
};
export const getSomething = () => { // <-- This is our thunk!
return async dispatch => {
const { data } = await axios.get('/something');
dispatch(gotSomething(data)); <-- This is the only thing being dispatched
};
};
Единственное, что действительно будет отправлять здесь, это GOT_SOMETHING.
Таким образом, порядок такой:
- Вы называете «отправка»гром (но не совсем).
- Redux (или промежуточное ПО thunk) проверит, возвращает ли объект, который вы «отправили», объект или функцию.
- Если это функция, то эта функция вызывается и диспетчеризацияпредоставляется этой функции
- Эта функция отправляет некоторое действие (вещь, которую вы на самом деле отправили)
Таким образом, даже если вы технически «вызываете диспетчеризацию» для своего thunk, выфактически только отправляет действие внутри функции, которую возвращает ваш thunk.Надеюсь, это поможет!