我正试图弄清楚应该如何使用react路由器处理查询。按照我目前的做法,this.props.location.search
中没有显示任何内容
注意:我使用的是路由器
我正在使用qs库解析查询输入
const queryString = (q) => qs.stringify(q, { format: 'RFC1738' })
然后,如果有查询(过滤器或页面更改(,我会重定向到所需的路由。
if (toResults) {
return (
<Redirect
push
to={{pathname: `/search/${route}`}}
/>
)
}
组件内的控制台日志DidUpdate:{pathname: "/search/?query=some+query&page=0", search: "", hash: "", key: "5tqm1t"}
为什么查询没有显示在搜索中?我是不是做错了什么?
我没有将Redirect组件的参数传递给对象,而是将其作为字符串传递。出于某种原因,当我将其作为对象传递时,它与我设置的另一条路线发生了冲突。
if (toResults) {
return <Redirect push to={`/search/${route}`} />
}
因此,我修改了生成URL的方式如下:
const queryString = (q) => `q?${qs.stringify(q, { format: 'RFC1738' })}`