使用 React 路由器返回时,将数据从 child 传递到 parent?

Pass data from child to parent when navigating back with react router?

我知道在使用 LinkRoute ..

向前导航时我可以传递数据
<Route
  path="/release"
  exact
  render={() => <ManagedEventsList pages={this.state.pages} />}
/>

写在这里:https://tylermcginnis.com/react-router-pass-props-to-components/

但是当按下浏览器后退按钮时是否也可以传递数据?

本文展示了如何在没有 React 路由器的情况下将状态从 child 传递到 parent。它可以与 React 路由器一起使用吗?

https://dev.to/zeyadetman/how-to-pass-state-between-components-in-reactjs-2pg1

使用 react-router-dom,不,无法通过后退导航传递状态。 history 对象只能通过 pushreplace 操作发送状态。 go 操作仅更新指向历史堆栈中当前位置的指针,即 go(-1) 等同于 goBack().

如果您需要保留与历史堆栈相关的数据,或者如果您还需要 "send" 返回导航期间的数据,那么您将需要 react-router-dom 之外的库。 Redux 将是一个不错的选择,如果您已经在使用它,可以将导航期间使用的数据保存在状态中,或者与执行 history.goBack() 一起分派一个操作以保存一些 "goBack" 数据通过上一页的检查检索状态。 Redux Sagas 或 Thunks 等其他工具允许您在更新状态的同时发出副作用。有了这些,您可以创建自己的 goBackWithState 操作,在您的 Redux 状态中保存一些状态 ,然后 发出后退导航。

react-router-dom history