使用 React 路由器返回时,将数据从 child 传递到 parent?
Pass data from child to parent when navigating back with react router?
我知道在使用 Link
、Route
..
向前导航时我可以传递数据
<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
对象只能通过 push
或 replace
操作发送状态。 go
操作仅更新指向历史堆栈中当前位置的指针,即 go(-1)
等同于 goBack()
.
如果您需要保留与历史堆栈相关的数据,或者如果您还需要 "send" 返回导航期间的数据,那么您将需要 react-router-dom
之外的库。 Redux 将是一个不错的选择,如果您已经在使用它,可以将导航期间使用的数据保存在状态中,或者与执行 history.goBack()
一起分派一个操作以保存一些 "goBack" 数据通过上一页的检查检索状态。 Redux Sagas 或 Thunks 等其他工具允许您在更新状态的同时发出副作用。有了这些,您可以创建自己的 goBackWithState
操作,在您的 Redux 状态中保存一些状态 ,然后 发出后退导航。
我知道在使用 Link
、Route
..
<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
对象只能通过 push
或 replace
操作发送状态。 go
操作仅更新指向历史堆栈中当前位置的指针,即 go(-1)
等同于 goBack()
.
如果您需要保留与历史堆栈相关的数据,或者如果您还需要 "send" 返回导航期间的数据,那么您将需要 react-router-dom
之外的库。 Redux 将是一个不错的选择,如果您已经在使用它,可以将导航期间使用的数据保存在状态中,或者与执行 history.goBack()
一起分派一个操作以保存一些 "goBack" 数据通过上一页的检查检索状态。 Redux Sagas 或 Thunks 等其他工具允许您在更新状态的同时发出副作用。有了这些,您可以创建自己的 goBackWithState
操作,在您的 Redux 状态中保存一些状态 ,然后 发出后退导航。