Reactjs 我应该如何使用react router v4处理查询路由?
我试图弄清楚我应该如何使用react路由器处理查询。以我目前的方式,在Reactjs 我应该如何使用react router v4处理查询路由?,reactjs,react-router-v4,Reactjs,React Router V4,我试图弄清楚我应该如何使用react路由器处理查询。以我目前的方式,在this.props.location.search中没有显示任何内容 注意:我正在使用withRouter 我正在使用qs库解析查询输入 constquerystring=(q)=>qs.stringify(q,{format:'RFC1738'}) 然后,如果有查询(筛选器或页面更改),我将重定向到所需的路由 if (toResults) { return ( <Redirect push t
this.props.location.search中没有显示任何内容
注意:我正在使用withRouter
我正在使用qs库解析查询输入
constquerystring=(q)=>qs.stringify(q,{format:'RFC1738'})
然后,如果有查询(筛选器或页面更改),我将重定向到所需的路由
if (toResults) {
return (
<Redirect
push
to={{pathname: `/search/${route}`}}
/>
)
}
if(返回结果){
返回(
)
}
componentDidUpdate内的控制台日志:{pathname:“/search/?query=some+query&page=0”,搜索:“”,哈希:“”,键:“5tqm1t”}
为什么查询没有显示在搜索中?我在这里做错了什么吗?我不是将重定向组件的参数传递给对象,而是将其作为字符串传递。由于某种原因,当我将其作为对象传递时,它与我设置的另一个路由发生冲突
if (toResults) {
return <Redirect push to={`/search/${route}`} />
}
这里没什么不对的。请在codesandbox.io上发布一个最简单可行的示例,以便人们能够帮助找出问题所在。您是否可以将更改为,像这样改为={{pathname:'/search',search:/${route}
}}谢谢您的建议!虽然这不适用于我的路线设置,但我可以这样做:
const queryString = (q) => `q?${qs.stringify(q, { format: 'RFC1738' })}`