Reactjs 在执行api post调用时,如何仅当操作页面中的post操作成功时才路由到页面
我有一个表单组件,在填写表单并放入所有数据后,如果按submit,它将转到proectaction并执行axios api post调用。 如果成功,我希望它返回到“/仪表板”Reactjs 在执行api post调用时,如何仅当操作页面中的post操作成功时才路由到页面,reactjs,react-redux,react-router,Reactjs,React Redux,React Router,我有一个表单组件,在填写表单并放入所有数据后,如果按submit,它将转到proectaction并执行axios api post调用。 如果成功,我希望它返回到“/仪表板” 你可以这样做: 编辑:确保将历史道具传递给动作,或在组件上使用动作时进行推送 const createProject = (project, history) => async dispatch => { try { await axios.post('http://localhost:8080/
你可以这样做: 编辑:确保将历史道具传递给动作,或在组件上使用动作时进行推送
const createProject = (project, history) => async dispatch => {
try {
await axios.post('http://localhost:8080/api/project', project)
history.push('/') // <---- Make the push here only after post success.
} catch(error) {
dispatch({
type: GET_ERRORS,
payload: error.response.data
});
}
};
这仅在您返回axios调用时有效。我不确定async和Wait是否相同
const createProject = (project, history) => async dispatch => {
try {
await axios.post('http://localhost:8080/api/project', project)
history.push('/') // <---- Make the push here only after post success.
} catch(error) {
dispatch({
type: GET_ERRORS,
payload: error.response.data
});
}
};
const createProjectHandler = async () => {
createProject(project).then(() => {
props.history.push('/')
})
}