我应该如何使用React Router v4处理查询路由?

问题描述 投票:0回答:1

我试图弄清楚应该如何使用React Router处理查询。我目前的操作方式,this.props.location.search

中没有任何显示

注意:我正在使用withRouter

我正在使用qs库解析查询输入

const queryString = (q) => qs.stringify(q, { format: 'RFC1738' })

然后,如果有查询(过滤器或页面更改),我将重定向到所需的路由。

if (toResults) {
  return (
  <Redirect
    push
    to={{pathname: `/search/${route}`}}
  />
  )
}

控制台日志在componentDidUpdate内部:{pathname: "/search/?query=some+query&page=0", search: "", hash: "", key: "5tqm1t"}

为什么查询不显示在搜索中?我在这里做错了吗?

reactjs react-router-v4
1个回答
0
投票

不是将重定向组件的参数传递给对象,而是将其作为字符串传递。由于某种原因,当我将其作为对象传递时,它与我设置的另一条路线发生了冲突。

    if (toResults) {
        return <Redirect push to={`/search/${route}`} />
    }

因此,我将生成URL的方式修改如下:

const queryString = (q) => `q?${qs.stringify(q, { format: 'RFC1738' })}`
© www.soinside.com 2019 - 2024. All rights reserved.