react router - 保持查询字符串路由更改

时间:2017-03-22 10:30:44

标签: reactjs react-router query-string react-router-redux

我想创建支持查询字符串的路由 当我说支持我的意思是,将它传递到下一条路线时如何。
例如:
根据这条路线:domain/home?lang=eng
当移动到路由domain/about时,我希望它保留查询字符串并显示domain/about?lang=eng 我确信这有一个内置的功能,但在阅读了文档和网上的大量搜索后,我找不到一个优雅的解决方案。
我正在使用react-router@3.0.0react-router-redux@4.0.7

2 个答案:

答案 0 :(得分:0)

对于react-router 4.x,请尝试

const { history } history.push('/about' + history.location.search)

要访问this.props.history,请确保已使用withRouter HOC包装了该组件

import { withRouter } from 'react-router-dom' ... export default withRouter(component)

推荐https://github.com/ReactTraining/react-router/issues/2185

答案 1 :(得分:-1)

你必须"转发"在每个页面转换时查询参数 - 烦心而且你很容易忘记...

相反,我会这样做。

  • 读取存储/持久lang首选项。 localStorage在这里是个好人。如果没有找到偏好,则回退到默认语言
  • 通过上下文共享lang,以便每个组件都可以读取此值。
  • 创建一些按钮(或其他),这将修改此值

由于您使用的是redux,因此我会提取redux-persist以在页面重新加载时保留此首选项。