Reactjs 在执行api post调用时,如何仅当操作页面中的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/

我有一个表单组件,在填写表单并放入所有数据后,如果按submit,它将转到proectaction并执行axios api post调用。 如果成功,我希望它返回到“/仪表板”


你可以这样做:

编辑:确保将历史道具传递给动作,或在组件上使用动作时进行推送

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('/')
  })

}