我目前正在使用react-router-dom v6开发一个React项目,我想获取所有查询参数。
http://localhost:3000/users?page=5&pageSize=25
我想同时得到page和pageSize。我知道我们可以使用下面的代码来得到带有键的参数。
import React from 'react'
import {useSearchParams} from "react-router-dom";
const Users = () => {
const [searchParams, setSearchParams] = useSearchParams();
const page = searchParams.get('page')
const pageSize = searchParams.get('pageSize')
return (<h1>page: {page}, pageSize: {pageSize}</h1>)
}
但是,然后我试图通过使用searchparams.getAll()
获得所有参数,而不指定键,但它不起作用,React应用程序只显示一个空白页面。
下面是我用来获取所有参数的代码:
import React from 'react'
import {useSearchParams} from "react-router-dom";
const Users = () => {
const [searchParams, setSearchParams] = useSearchParams();
const params = searchParams.getAll();
console.log(params)
return (<h1>params</h1>)
}
我是不是搞错了?
这是我对package.json
的依赖:
"dependencies": {
...,
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-router-dom": "^6.2.2",
...,
},
1条答案
按热度按时间bq3bfh9z1#
URLSearchParams.getAll
仍然接受一个键,并返回该键的所有值的数组。可以使用
URLSearchParams.entries
返回一个迭代器,该迭代器可用于将条目推入键/值对数组。示例:
您还可以使用
URLSearchParams.forEach
迭代并捕获键/值对。示例:
使用
.entries
for循环或.forEach
方法,您可以改为"reduce"为对象。尽管如此,最好还是使用
.get
方法并显式获取特定的queryString参数。