我有一个使用Axios进行POST的Redux表单 . 我需要来自Axios的回调,它会执行一些后续功能 . 我正在使用redux-thunk,因为在POST之前,我正在从Redux中提取令牌以放入我正在尝试制作的请求的 Headers 中 .

这适用于GET,如下所示:

export const getSomeData = () => {
    return (dispatch, getState) => {
        let headers = {
            access_token: getState().user.token,
            start: start,
            page_size: pageSize
        };
        const request = axios({
            method: "GET",
            url: `${my_url}/route`,
            headers: headers
        });
        dispatch({
            type: GET_SOME_DATA,
            payload: request
        });
    };
};

但是,我似乎找不到合适的扭曲逻辑来使这个工作用于POST . 当表单发布时,函数会被调用,但它甚至都不会返回到return语句 .

export const saveSomeData = (data, callback) => {
    return (dispatch, getState) => { //*** This line is never reached!
        const request = axios({
            method: "POST",
            url: `${my_url}/route`,
            data: data,
            headers: {
                access_token: getState().activeUser.token
            }
        }).then(() => callback());
        return dispatch({
            type: SAVE_SOME_DATA,
            payload: request
        });
    };
};

在添加thunk-age之前,当标头值不是必需的时候,这非常有效 . 它看起来像这样,并按预期进行了回调:

export const saveSomeData = (data, callback) => {
    const request = axios({
        method: "POST",
        url: `${my_url}/route`,
        data: data
    }).then(() => callback());
    return {
        type: SAVE_SOME_DATA,
        payload: request
    };
}

在整个更改过程中,我的Redux Form接线没有改变:

export default connect(mapStateToProps, {
    saveSomeData
})(reduxForm({
    form: "MyFormerlyWorkingForm"
})(MyFormerlyWorkingForm));

我已经尝试移动调度并完成我在Stack上找到的示例,但无论如何代码永远不会超出函数的第一行 .