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'响应,那么它有成为您的'呼叫'功能的问题。 –