react 获取 search 方式传递的参数(URLSearchParams 和 querystring)
1.通过 URLSearchParams 获取
URLSearchParams() 返回一个 URLSearchParams 对象。该接口不继承任何属性。
方法:
(1)URLSearchParams.append() 插入一个指定的键/值对作为新的搜索参数,没有返回值。
(2)URLSearchParams.delete() 从搜索参数列表里删除指定的搜索参数及其对应的值。 没有返回值。
(3)URLSearchParams.entries() 返回一个iterator可以遍历所有键/值对的对象。
(4)URLSearchParams.keys()返回iterator 此对象包含了键/值对的所有键名。
(5)URLSearchParams.values() 返回iterator 此对象包含了键/值对的所有值。
(6)URLSearchParams.set() 设置一个搜索参数的新值,假如原来有多个值将删除其他所有的值。没有返回值。
(7)URLSearchParams.get() 获取指定搜索参数的第一个值。 返回指定键名的值。支持自动 UTF-8 解码
(8)URLSearchParams.getAll() 获取指定搜索参数的所有值,返回是一个数组。
(9)URLSearchParams.has() 返回 Boolean 判断是否存在此搜索参数。
(10)URLSearchParams.sort() 按键名排序。
(11)URLSearchParams.toString()返回搜索参数组成的字符串,可直接使用在URL上。
使用:
const { location: { search } } = props;
const individualReportDs = useMemo(() => new DataSet(individualReportDS()), []);
const searchParams = new URLSearchParams(search.substring(1));
useEffect(() => {
if (searchParams?.get('reportCode')) {
individualReportDs?.queryDataSet?.reset();
individualReportDs?.queryDataSet?.create({ reportCode: searchParams.get('reportCode') }, 0);
}
individualReportDs.query();
}, []);
2.通过 querystring
import qs from 'querystring';
...
const { location: { search } } = props;
const individualReportDs = useMemo(() => new DataSet(individualReportDS()), []);
useEffect(() => {
if (search && search.slice(1)) {
const { reportCode } = qs.parse(search.slice(1));
individualReportDs?.queryDataSet?.reset();
individualReportDs?.queryDataSet?.create({ reportCode }, 0);
}
individualReportDs.query();
}, []);
.

浙公网安备 33010602011771号