繁体   English   中英

使用反应路由器时在反应中维护 state

[英]Maintain state in react while using react router

我是 React 的初学者。 请帮我解决这个问题。 我正在使用 react router(Link, Route, BrowserRouter, Switch) 在不同页面之间导航。 我在其中一个页面中设置了 state,当我导航回上一页时,state 丢失了。 我应该使用 redux 来存储 state 吗?

假设你有 2 页。 这 2 页有一些内部 state。 现在,当您从页面 A 遍历到页面 B 时。

constructor开始调用页面 B 状态(如果您使用的是基于 class 的组件)直到componentDidMount 所以页面 B 定义了它的状态。

现在您正在返回页面 A(通过链接或浏览器返回),因此页面 A 得到一个新的调用,它开始调用其内部状态并开始设置整个页面。

所以你以前的状态现在丢失了。 要保留您的状态,您需要了解使用Redux的 state 管理。

PS:最好从 React Hooks 开始并深入研究 Redux 以进行 state 管理。

You should you react-redux you can't get state of another component, if you want to get the state from another component you can pass the state from component A as props to component B

前任:

import componentB from "path_to_the_component_b"

然后你可以通过像这样的道具将 state 从组件 A 传递到组件 B

<componentB state={this.state.your_state_name}/>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM