React Router:替换位置状态然后返回,位置状态未定义

React Router: Replace location state then goBack, location state is undefined

this.props.history.replace({
  state: {
    from: 'dashboard'
  }
});

this.props.history.goBack();

更新this.props.location.statethis.props.history.goBack()使用this.props.history.goBack()this.props.location.state的值为undefined。但是

this.props.history.push({
  pathname: '/',
  state: {
    from: 'dashboard'
  }
});

有效并保留 this.props.location.state 的值。

知道如何更新 this.props.location.state 然后使用 this.props.history.goBack 吗?

根据官方文档:

  • push(path, [state]) - (function) 将新条目推送到历史堆栈
  • replace(path, [state]) - (function) 替换历史堆栈中的当前条目
  • go(n) - (function) 将历史堆栈中的指针移动 n 个条目
  • goBack() - (function) 相当于go(-1)
  • goForward() - (function) 相当于go(1)

所以最好使用 this.props.history.push({}) 如果你想使用 goBack()

为了更好地理解您可以访问react-router-dom, history