如何在不同的 URL 路由之间保存 redux 状态?

Posted

技术标签:

【中文标题】如何在不同的 URL 路由之间保存 redux 状态?【英文标题】:How to save redux state between different URL routes? 【发布时间】:2018-11-25 19:32:23 【问题描述】:

我在 www.infinity2o.com 上有一个带有多个路由的 react/redux webapp:

<Route exact=true path="/profile" component=Profile />
<Route exact=true path="/sorting_hat" component=SortingHat />

我遇到的问题是我的 UI 颜色主题已保存到我的 redux 商店中。但是每次我的 URL 路由从infinity2o.com/profile 更改为infinity2o.com/sorting_hat 时,我的整个状态都会重置为null

在路由之间切换时是否可以保持我的一些 redux 状态持久化?

【问题讨论】:

您也可以通过您的服务 API 使其可用,以便根据 URI 返回特定主题并将其设置为状态。 通常在路由之间导航(在类似 react 的 SPA 中)不会重置状态,除非您刷新应用程序(F5),并且我们需要将状态保留在商店之外,以防我们的应用程序完全刷新,但在您的情况下(并且您正在使用 react-router)导航到另一条路线不应真正重置您的商店,另一件可以帮助您的事情是使用来自 react-router-reduxLOCATION_CHANGE 事件检测到路由变化,然后你就可以处理状态了。 【参考方案1】:

你可以尝试使用 redux-persist 库

【讨论】:

以上是关于如何在不同的 URL 路由之间保存 redux 状态?的主要内容,如果未能解决你的问题,请参考以下文章

反应路由器redux url

Redux 路由器 - 刷新后如何重播状态?

Redux:如何管理跨路由的冲突状态?

为一些 Redux 状态更改添加 url 路由

成功或错误后如何使用 redux thunk 重定向?

在选择器中访问反应路由器状态