我有一个使用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上找到的示例,但无论如何代码永远不会超出函数的第一行 .