[英]Redux double dispatch of action
我在必須如何在同一函數中分派2個操作時遇到了一些麻煩:
初始功能:
export function updateItem(item){
return function (dispatch, getState) {
let items = getState().ItemReducer.items;
if(item.id_type === 519){
deleteItem(items[0]);
}
return dispatch({
type:"UPDATE_ITEM",
item: item
});
};
}
我必須打電話的第二個動作:
export function deleteItem(item){
return (dispatch) => {
deleteItemApi(item);
dispatch({
type: "DELETE_ITEM",
item: item
})
}
}
該函數在其他地方使用並且可以正常工作,但是我不知道如何使用它,因為我已經有一個return function (dispatch, getState)
謝謝!
由於函數deleteItem返回一個函數,因此您可以通過調用以下命令來分派它:
deleteItem(items[0])(dispatch)
您已經在使用redux-thunk(動作創建者可以返回動作或一個函數 ),因此您可以執行此操作,調度一個動作創建者返回一個返回動作的函數:
export function updateItem(item){
return function (dispatch, getState) {
let items = getState().ItemReducer.items;
if(item.id_type === 519){
dispatch(deleteItem(items[0])); // <----------
}
return dispatch({
type:"UPDATE_ITEM",
item: item
});
};
}
您可以創建一個中間件並偵聽操作類型UPDATE_ITEM,然后調度DELETE_ITEM
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.