Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 我应该如何使用react router v4处理查询路由?_Reactjs_React Router V4 - Fatal编程技术网

Reactjs 我应该如何使用react router v4处理查询路由?

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

我试图弄清楚我应该如何使用react路由器处理查询。以我目前的方式,在
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' })}`