URLSearchParams 返回空对象

kun*_*r11 7 javascript typescript reactjs react-router

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

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

constructor(props) {
  super(props);
  const params: URLSearchParams = new URLSearchParams(this.props.location.search);
  console.log(params); //Getting empty object {}
}
Run Code Online (Sandbox Code Playgroud)

小智 10

尝试

 console.log(params.get("page"));
Run Code Online (Sandbox Code Playgroud)

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

否则请确保 this.props.location.search 确实具有有效的功能。

new URL("http://localhost:3000/buildings?search_query=test&page=2").search
Run Code Online (Sandbox Code Playgroud)

例如,是否返回有效值。


Jos*_*ose 8

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

params = new URLSearchParams(window.location.search)
Run Code Online (Sandbox Code Playgroud)

当您注销参数时,您可能希望它显示一个带有键的对象,但事实并非如此。为了真正在控制台中看到它们,您需要使用循环对其进行迭代

for (let item of params) {
  console.log('item: ', item)
}
Run Code Online (Sandbox Code Playgroud)

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

  • 哈哈 - 这就是答案并同意,令人困惑。这是一个错误还是背后有任何具体原因? (2认同)