javascript - 在 React Router v4 中表示 URL 查询

标签 javascript reactjs url react-router react-router-v4

我看过其他一些使用不同版本的 React-Router(v4 之前)的示例,但我似乎找不到正确表示 URL 参数的方法。

例如,如果我想从搜索结果中向 friend 发送链接,它看起来像:
https://yourwebsite.com/search?item-name=youritem

在这种情况下,我知道 React-Router(v4) 可以提供可选参数,但它们未在 URL 中表示,因此您如何才能将准确的请求发送到服务器以获取信息。

即我将上面的链接发送给 friend -> 它到达服务器,然后数据被填充到组件中。

最佳答案

真的没有什么特别的事情要做,只需像这样设置一个Route:

<Route path="/search" component={MySearchComponent} />

这将设置/search 路由。然后,要在您的 MySearchComponent 中访问传递的任何查询参数:

const queryParameters = this.props.location.search;

location prop 通过 React Router 传递给组件。它包含整个查询字符串。所以如果我导航到:

https://myWebsite.com/search?foo=bar&baz=buzz

那么 this.props.location.search 将是:

'?foo=bar&baz=buzz'

这类似于 Location.search在现代浏览器上。接下来,您可以使用查询字符串解析器库,如内置 querystring或 NPM 中的任何其他人,甚至是浏览器自己的 URLSearchParams :

const params = new URLSearchParams(queryParameters);
const foo = params.get('foo'); //baz
const baz = params.get('baz'); //buzz

请注意,Internet Explorer 不支持此功能。我建议改用 NPM 库。

关于javascript - 在 React Router v4 中表示 URL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46268272/

相关文章:

javascript - 将 Div 内容复制到第二个 Div

javascript - 返回一组文档,其中所有子数组都包含loopback或nodejs中的给定值

javascript - 向 PHP 发送 Ajax 请求不起作用

javascript - renderSortByOptions() 有什么作用?

c++ - 如何获取我的 websocket 的服务器 IP 地址

javascript - 主干集合获取不会更新@collection.length

javascript - 第二次 axios api 调用时出现 GET 错误 400 错误请求

javascript - 如何在文本输入中设置图标?

java - Android Brightcove 视频播放器

python - 如何处理 Django URL 中的 & 符号?