首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在反应性路由器v4中获取查询参数

问如何在反应性路由器v4中获取查询参数
EN

Stack Overflow用户
提问于 2017-04-04 19:58:38
回答 13查看 133.1K关注 0票数 104

在我的项目中,我使用了react路由器-dom 4.0.0-beta.6。我有如下代码:

代码语言:javascript
复制
<Route exact path="/home" component={HomePage}/>

我希望在HomePage组件中获得查询参数。我找到了location.search param,它看起来像这样:?key=value,所以它是未解析的。

使用react路由器v4获得查询参数的正确方法是什么?

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2017-04-05 02:06:09

解析查询字符串的能力已从V4中删除,因为多年来一直有支持不同实现的请求。这样,团队决定最好由用户来决定实现是什么样子的。我们建议导入查询字符串库。这是我用的

代码语言:javascript
复制
const queryString = require('query-string');

const parsed = queryString.parse(props.location.search);

您还可以使用new URLSearchParams,如果您想要本地的东西,并且它可以满足您的需要。

代码语言:javascript
复制
const params = new URLSearchParams(props.location.search);
const foo = params.get('foo'); // bar

您可以阅读更多关于决策这里的内容。

票数 207
EN

Stack Overflow用户

发布于 2020-05-12 20:10:36

另一个有用的方法是像这样使用开箱即用的URLSearchParams;

代码语言:javascript
复制
  let { search } = useLocation();

   const query = new URLSearchParams(search);
   const paramField = query.get('field');
   const paramValue = query.get('value');

干净,可读性强,不需要模块。下面是更多的信息;

票数 24
EN

Stack Overflow用户

发布于 2018-04-25 08:07:49

给出的答案是可靠的。

如果您想使用qs模块而不是查询字符串 (它们在流行程度上大致相同),下面是语法:

代码语言:javascript
复制
const query = qs.parse(props.location.search, {
  ignoreQueryPrefix: true
})

ignoreQueryPrefix选项是忽略前面的问号。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43216569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档