0
我正在處理React/Redux應用程序,我必須刪除用戶地址,我使用REDX傳奇作爲中間件,功能工作正常,但問題是刪除地址後請求未進入deleteAddressByBuyerIdAddressIdSuccess(在saga.js文件),它正在進入只有deleteAddressByBuyerIdAddressId和deleteAddressByBuyerIdAddressIdFailure(在終極版的開發工具已經檢查),任何一個可以幫助我弄清楚這個問題,REDX傳奇刪除功能
我的所有功能,下面給出了REDX開發者工具的屏幕截圖:
操作文件
/* Delete an address for a buyer */
const deleteAddressByBuyerIdAddressId =
(buyerId: string, addressId: string, address: Object, params: string) => ({
type: Types.DELETE_ADDRESS_BY_BUYER_ID_ADDRESS_ID,
buyerId,
addressId,
address,
params,
});
const deleteAddressByBuyerIdAddressIdSuccess =
(buyerId: string, addressId: string, address: Object, params: string) => ({
type: Types.DELETE_ADDRESS_BY_BUYER_ID_ADDRESS_ID_SUCCESS,
buyerId,
addressId,
address,
params,
});
const deleteAddressByBuyerIdAddressIdFailure =
(errorMessage: Object) => ({
type: Types.DELETE_ADDRESS_BY_BUYER_ID_ADDRESS_ID_FAILURE,
errorMessage,
});
佐賀文件
/* Delete Buyers address */
function* deleteAddressByBuyerIdAddressId(action) {
try {
const response = yield call(
api.account.deleteAddressByBuyerIdAddressId,
action.buyerId,
action.addressId,
action.address,
action.params
);
if (response.ok && response.data && {}.hasOwnProperty.call(response.data, 'data')) {
yield put(
Actions.deleteAddressByBuyerIdAddressIdSuccess(
action.buyerId,
action.addressId,
response.data,
action.address,
action.params
)
);
} else {
yield put(Actions.deleteAddressByBuyerIdAddressIdFailure(response.errorMessage));
}
} catch (error) {
yield put(Actions.deleteAddressByBuyerIdAddressIdFailure(error));
}
}
function* watchDeleteAddressByBuyerIdAddressId(): Generator<void, void, void> {
yield takeLatest(Types.DELETE_ADDRESS_BY_BUYER_ID_ADDRESS_ID, deleteAddressByBuyerIdAddressId);
}
減速
export const deleteAddressByBuyerIdAddressId = (state: Object = INITIAL_STATE) => ({
...state,
isLoading: true,
successMessage: null,
errorMessage: null,
});
export const deleteAddressByBuyerIdAddressIdSuccess = (state: Object = INITIAL_STATE, action: Object) => {
const successMessage = I18n.getText('account.address-deleted', {}, 'Address deleted!');
return {
...state,
address: action.address,
successMessage: successMessage,
}
};
export const deleteAddressByBuyerIdAddressIdFailure = (state: Object = INITIAL_STATE, action: Object) => ({
...state,
errorMessage: action.errorMessage,
isLoading: false,
});
個
終極版開發者工具查看
您的程序正在趕上或它正在進入其他地方? –
是的,我的程序進入catch或else塊,因爲它們在刪除用戶地址後的響應爲空,請你告訴我這個溶劑,預先感謝 – wali
如果你正在得到'null'響應,那麼它有成爲您的'呼叫'功能的問題。 –