【发布时间】:2016-12-25 08:45:45
【问题描述】:
我正在使用 React (15.3.0)、Redux (3.5.2) 和 react-router (2.6.1) 构建一个 Web 应用程序。我包含了我看过一些相关帖子的版本,但它们引用了这些库的旧版本。
我有一些状态希望保留在 URL 上,以便用户可以深层链接到它。通过深度链接,我的意思是用户可以直接链接到页面的状态。我的应用中有多个页面,每个页面都有一个单独的减速器,每个页面的状态应该在页面之间保持。
我已阅读 Dan Abramov 推荐的方法:How to sync Redux state and url hash tag params 除了页面之间的持久状态之外,这似乎没问题。
一个示例场景:
用户登陆第一页:
/page1用户与页面交互导致状态保存在 URL 中:
/page1?state={...}用户转到第 2 页:
/page2用户与页面 2 交互:
/page2?state={...}用户链接到第 1 页,期望在他们离开时看到该页面。问题!我们如何从第 1 页恢复状态?
我查看了 react-router-redux,但我不知道它是否能满足我的需要?
是否有解决此问题的通用方法?如果是这样,那是什么?如果没有,您能建议一种方法吗?
【问题讨论】:
-
为什么要在 url 中保存状态?
-
@Fantasim 以便用户可以共享链接,使其他用户能够以相同的状态查看该页面。
-
那么你为什么不解析关于Page1的主组件上的componentWillMount中的URL,然后创建一个将数据发送到reducer的操作?
标签: javascript reactjs redux react-router react-router-redux