使用reactjs-redux捕获axios中未定义的参数调用匿名函数

Arguments undefined calling anonymous function inside axios catch using reactjs-redux

我正在尝试创建一个 react redux 中间件来调用 rest api,到目前为止,当我获得 2xx 状态时一切正常,但我对其他状态有问题,那些陷入困境的状态,在调试过程中,我可以在调用我的函数之前看到错误变量的内容,但是当 catch 调用我在我的操作文件中定义的 on_error 函数时,传递的参数未定义,代码非常简单

middleware/api.js

const { method, url, data, on_success, on_error } = action.payload;

axios({
    method: method,
    url: url,
    data: data,
    headers: headers
})
    .then((response) => {
        dispatch(on_success(response));
    })
    .catch((error) => {
        console.log(on_error(error.response))
        dispatch(on_error(error.response));
    });

action/auth.js

export const authError = (error_response) => {
    console.log(error_response);
    return {
        type: AUTHENTICATION_ERROR,
        payload: errorCodesMessage(error_response.status)
    }
};

export const logInUser = (username, password) => ({
    type: 'API',
    payload: {
        method: 'post',
        url: API_AUTH_URL,
        on_success: ({ data }) => setToken(data),
        on_error: ({ error_response }) => authError(error_response),
        data: JSON.stringify({
            password: password,
            username: username
        })
    }
});

您正在将参数作为对象传递

on_error: ({error_response}) => authError(error_response)

而是直接传递

on_error: (error_response) => authError(error_response)

或者,如果上述方法不是您或您的团队遵循的模式,则更改将参数传递给回调的方式:

middleware/api.js

on_error({ error_response: error.response })