我有一个带有react-router-dom的应用程序,并使用BrowserRouter组件。在应用程序中,我有路由/query-builder,它本质上是通过从表中挑选值来构建查询字符串等。一旦用户构建了查询字符串,他们就可以通过来自react-router-dom和history.push('/search?q=${queryString}')的useHistory()钩子导航到/search?q=<some querystring>。
我想知道的是,是否可以通过浏览器的后退按钮导航回/query-builder路由,并查看页面,就像我导航到/search之前一样,以便用户可以对查询进行修改。我现在看到的是,查询构建器组件将返回到它的初始状态,因为它正在再次挂载。
我可以使用redux来管理查询构建器状态,并从中恢复组件,但我想知道我是否遗漏了react-router / react-router-dom包中可用的内容?
发布于 2020-05-15 13:27:51
看起来useContext是解决你的问题的最佳变种。将变量保存在查询构建器中,这样您就可以轻松地返回而不会受到任何惊吓),而且它在history.goBack()和浏览器返回中都可以正常工作
https://stackoverflow.com/questions/61799735
复制相似问题