reactjs - React 路由器在更改路由和返回时保留查询参数
问题描述
我有一个基于react-router
v4
. 每个页面都有url
query
基于过滤器的过滤器,这意味着过滤器设置存储在 url 上,例如mysite.com/page1?filterKey=value
.
我的目标是在用户从另一个页面(mysite.com/page2
)返回时保留查询中的过滤值。
解决方案
我看到的唯一两种方法是按照 Will Jenkins 的建议使用 redux,或者在父容器中设置状态(App.js 或处理路由的文件):
- 在父容器中,定义函数
setQuery = query => this.setState({query})
将函数传递给子组件
在子组件中,传递对 componentDidMount 的查询:
componentDidMount (){
this.setQuery( decodeURIComponent(querySearch(this.props.location.search).param) )
}
推荐阅读
- html - 如何在 HTML5 数字输入中不允许超过 2 个小数
- python - 如何计算二维矩阵中每个子数组的加权中位数?
- react-native - 反应导航给未定义
- firebase - 对于一封电子邮件,我可以从 firebase 实时数据库中获得多少存储空间?
- c++ - 为什么编译器在执行operator<时不能使用类的std::string转换函数
考虑以下
struct
使用用户定义的转换函数,该函数可以将自身转换为const char*
;struct S { operator const char*() { return "hello"; } };
与 一起工作
<io
- python - Python 中的正则表达式完全匹配与组匹配
- haskell - Haskell 词法分析器输入和返回标记或错误列表
- sql - 带有选定列的 sql dw count(*) 不会聚合
- c++ - C++,使用 iostream 库输出未初始化的变量 \ Visual Basic
- firebase - 无法设置将集合导出到 BigQuery 扩展程序。无法卸载:无法从服务帐号中删除 IAM 角色