前情提要
用react-router v6的时候,会提供一个useSearchParams来获取url参数(看这里),而v5版本木有。那好办,造个轮子吧。
代码实现
import { useLocation } from "react-router-dom";
import { useMemo } from "react";
/**
* 获取当前页面的查询参数
*/
function useSearchParams() {
const { search } = useLocation();
return useMemo(() => {
const urlSearchParams = new URLSearchParams(search);
let params = {};
urlSearchParams.forEach((value, key) => {
params[key] = value;
});
return params;
}, [search]);
}
export default useSearchParams;