【问题标题】:react-router-dom back with previous statereact-router-dom 返回之前的状态
【发布时间】:2020-05-14 14:22:13
【问题描述】:

我有一个带有react-router-dom 的应用程序并使用BrowserRouter 组件。在应用程序中,我有路由/query-builder,它将通过从表等中选取值来构建查询字符串。一旦用户构建了查询字符串,他们可以通过useHistory() 钩子从react-router-dom 导航到/search?q=<some querystring>history.push('/search?q=${queryString}')

我想知道的是,是否可以通过浏览器后退按钮导航回/query-builder 路线,并查看我导航到/search 之前的页面,以便用户可以进行修改到查询。我现在看到的是,查询构建器组件将回到其初始状态,因为它再次安装。

我可以使用 redux 来管理查询构建器状态并从中重新水化组件,但我想知道我是否缺少 react-router / react-router-dom 包中可用的东西?

【问题讨论】:

  • 使用浏览器的后退按钮重要还是您可以创建自己的自定义按钮?
  • 是的,因为“应用内”后退按钮无论如何都会在历史记录中导航

标签: javascript reactjs react-router react-router-dom


【解决方案1】:

看起来 useContext 是解决您的问题的最佳变体。将变量保存在查询生成器中,然后您可以轻松返回而不会害怕)而且它在 history.goBack() 和浏览器返回中都可以正常工作

【讨论】:

  • 好的,和使用 redux 的想法一样,因为需要将状态提升到更“全局”的级别
猜你喜欢
  • 2022-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-09
  • 2022-07-19
  • 2020-08-16
  • 1970-01-01
  • 2021-01-24
相关资源
最近更新 更多