使用history.push调度后重定向

时间:2018-08-17 15:30:23

标签: reactjs react-redux

我创建了一个表单,当用户单击“提交”时,它将触发此操作:

export const sendMessage = (newMessage, history) => dispatch => {
  axios
    .post("/message", newMessage)
    .then(res =>
      dispatch({
        type: THANK_U,
        payload: res.data
      }).history.push("/thank-you")
    )
    .catch(err =>
      dispatch({
        type: GET_ERRORS,
        payload: err.response.data
      })
    );
};

如果表格中有错误,则显示正确。但是,如果正确填写表单而不是将用户重定向到“谢谢”页面,我将收到一条错误消息:无法读取未定义的属性数据。 如果我删除.history.push(“ / thank-you”)一切正常,那么我猜这是问题所在,但我找不到问题所在。 谢谢您的帮助。

1 个答案:

答案 0 :(得分:2)

我认为您的格式/语法有些混乱。您正在尝试将history.push链接到dispatch,而需要单独调用它们。

export const sendMessage = (newMessage, history) => dispatch => {
  axios
    .post("/message", newMessage)
    .then(res => {
      dispatch({
        type: THANK_U,
        payload: res.data
      })
      history.push("/thank-you")
    })
    .catch(err =>
      dispatch({
        type: GET_ERRORS,
        payload: err.response.data
      })
    );
};