我应该如何使用react路由器v4处理查询路由



我正试图弄清楚应该如何使用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' })}`

最新更新