首页 > 解决方案 > React Router:保留先前访问过的“路由”的状态

问题描述

我有一个带有五个“路由”/子页面的 React 应用程序(使用 React Router)。

如果用户在子页面上输入信息(例如选中复选框/在页面上的输入字段中输入文本),然后访问另一个子页面,然后返回上一个子页面,我想要那个子页面保留用户离开它的状态。

在某些时候,我还需要能够检索所有子页面的状态。

使用 React Router 是否可行/可行,或者有更好的方法吗?

标签: reactjs

解决方案


如果你不想使用 Redux 或类似的东西来维护路由更改之间的数据,你总是可以有一个位于上方的包装组件,并通过 react-routers render prop solution<Router>将数据传递给每个相关的。但是,您需要为子部分可能需要进行的每个更新提供回调,这不一定是可扩展的。<Route>

或者,另一种方法是将子部分的状态从组件中取出并通过参数进入 URL,例如您可能在 URL 中常见的搜索过滤器。然而,这并不总是可取的。

不过,实施 Redux 将是解决该问题的更好方法。


推荐阅读