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();
}, []);

.

posted @ 2022-07-24 23:01  每天都要进步一点点  阅读(1495)  评论(0)    收藏  举报