首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >URLSearchParams返回空对象

URLSearchParams返回空对象
EN

Stack Overflow用户
提问于 2020-09-02 22:37:06
回答 5查看 2.4K关注 0票数 2

我想获取搜索params并将params添加到URL,但每次都得到空数组。

示例url - http://localhost:3000/buildings?search_query=test&page=2

代码语言:javascript
复制
constructor(props) {
  super(props);
  const params: URLSearchParams = new URLSearchParams(this.props.location.search);
  console.log(params); //Getting empty object {}
}
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2020-09-02 22:45:58

尝试

代码语言:javascript
复制
 console.log(params.get("page"));

它应该返回“2”。URLSearchParams在控制台中显示为空对象,并且不会显示所有值。不过,它确实允许您调用get函数。

否则,请确保this.props.location.search确实具有有效的函数。

代码语言:javascript
复制
new URL("http://localhost:3000/buildings?search_query=test&page=2").search

确实返回了一个有效值,例如。

票数 5
EN

Stack Overflow用户

发布于 2021-05-07 17:50:29

我猜您使用react-router并将URL查询字符串附加到/buildings。所以this.props.location.search是空的。

代码语言:javascript
复制
history.push({
  pathname: '/buildings?search_query=test&page=2',
});

请在search属性中设置URL查询字符串。

代码语言:javascript
复制
history.push({
  pathname: '/buildings',
  search: '?search_query=test&page=2'
});
票数 2
EN

Stack Overflow用户

发布于 2021-08-04 16:43:03

事实证明,当您在chrome dev控制台中执行此操作时,它会向控制台返回一个空对象,而不是以标准的方式显示具有多个键的对象。

代码语言:javascript
复制
params = new URLSearchParams(window.location.search)

当您注销params时,您会期望它显示一个带有键的对象,但它没有。为了在控制台中实际看到它们,您需要使用循环对其进行迭代

代码语言:javascript
复制
for (let item of params) {
  console.log('item: ', item)
}

非常令人困惑,因为我期望它像一个普通的对象一样工作

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

https://stackoverflow.com/questions/63707870

复制
相关文章

相似问题

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