【问题标题】:React Routing and Restoring StateReact 路由和恢复状态
【发布时间】:2017-04-25 11:58:45
【问题描述】:

我可以使用一些关于 React、Redux 和路由的建议。我一直在玩 react-router-redux 和 redux-little-router。两者似乎都没有为恢复路由状态提供开箱即用的解决方案。我来解释一下:

假设我有一个包含产品页面的应用。产品页面显示相关产品。用户可以点击相关产品并查看其产品页面。从该产品页面,他们可以点击另一个相关产品等。

我最终得到的是一堆被推送到路由“堆栈”的页面,所有页面都具有相同的路径。当用户点击返回时,我需要遍历产品页面,每个页面都恢复了相应的状态。

我的问题是:我在哪里存储每个产品页面的状态位。我看不出主要框架如何为此提供机制。我必须自己写吗?

【问题讨论】:

    标签: reactjs url-routing


    【解决方案1】:

    您不应尝试存储任何堆栈/历史记录。您应该在 URL 中存储显示页面所需的数据,例如产品 ID。在您的路由或组件中,您应该从 AJAX 加载适当的数据,并根据 URL 中的 ID 进行存储。

    您可以在onEnter callback:https://stackoverflow.com/a/32922945/743464中获取数据

    或者您可以使用async-propsredux-async-connect 之类的库来获取数据,当您的组件挂载以响应路由更改时将调用该库。

    【讨论】:

    • 感谢安迪的可靠回复。滚动位置之类的东西呢?我会在哪里存储这些状态?
    • 我没有亲自使用过,但github.com/taion/react-router-scroll 可能会为您完成这项工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-05
    • 1970-01-01
    • 1970-01-01
    • 2017-02-02
    • 2018-11-26
    • 2016-04-06
    相关资源
    最近更新 更多