为什么不链接调度 Redux-Thunk
Why don't chaining dispatch Redux-Thunk
为什么不链接调度 Redux Thunk?只工作第一次调度和第二次调度不工作。
商店:
const store = createStore(reducers, loadState(), applyMiddleware(thunk));
操作:
export function doSomething(name) {
return function (dispatch) {
dispatch({
type: 'USERNAME',
payload: name
})
dispatch({
type: 'OTHER_TYPE',
payload: 'text'
})
return true;
}
}
编辑
成功了:
return Promise.all([
dispatch({
type: 'USERNAME',
payload: name
}),
dispatch({
type: 'OTHER_TYPE',
payload: 'text'
})
])
来自docs:
// We can dispatch both plain object actions and other thunks,
// which lets us compose the asynchronous actions in a single flow.
return dispatch(
makeASandwichWithSecretSauce('My Grandma')
).then(() =>
Promise.all([
dispatch(makeASandwichWithSecretSauce('Me')),
dispatch(makeASandwichWithSecretSauce('My wife'))
])
).then(() =>
dispatch(makeASandwichWithSecretSauce('Our kids'))
).then(() =>
dispatch(getState().myMoney > 42 ?
withdrawMoney(42) :
apologize('Me', 'The Sandwich Shop')
)
);
But I would recommend using redux-saga instead of redux-thunk
because of these reasons.
为什么不链接调度 Redux Thunk?只工作第一次调度和第二次调度不工作。
商店:
const store = createStore(reducers, loadState(), applyMiddleware(thunk));
操作:
export function doSomething(name) {
return function (dispatch) {
dispatch({
type: 'USERNAME',
payload: name
})
dispatch({
type: 'OTHER_TYPE',
payload: 'text'
})
return true;
}
}
编辑 成功了:
return Promise.all([
dispatch({
type: 'USERNAME',
payload: name
}),
dispatch({
type: 'OTHER_TYPE',
payload: 'text'
})
])
来自docs:
// We can dispatch both plain object actions and other thunks,
// which lets us compose the asynchronous actions in a single flow.
return dispatch(
makeASandwichWithSecretSauce('My Grandma')
).then(() =>
Promise.all([
dispatch(makeASandwichWithSecretSauce('Me')),
dispatch(makeASandwichWithSecretSauce('My wife'))
])
).then(() =>
dispatch(makeASandwichWithSecretSauce('Our kids'))
).then(() =>
dispatch(getState().myMoney > 42 ?
withdrawMoney(42) :
apologize('Me', 'The Sandwich Shop')
)
);
But I would recommend using redux-saga instead of redux-thunk because of these reasons.