Skip to content

useSearchParams

useSearchParams 是一个 React-router 的钩子函数,用于获取当前 URL 的搜索参数,也就是 ? 后面的参数。

使用

返回一个包含当前 URL 搜索参数的 URLSearchParams 对象。

tsx
import { useSearchParams } from 'react-router'

function SomeComponent() {
  let [searchParams, setSearchParams] = useSearchParams()
}

例如当前 URL 为 http://localhost:5173/search?name=张三&age=18

tsx
// 获取当前 URL 的搜索参数
let [searchParams, setSearchParams] = useSearchParams()
console.log(searchParams.get('name')) // 张三
console.log(searchParams.get('age')) // 18
//修改当前 URL 的搜索参数
<button onClick={() => setSearchParams(prev => {
    prev.set('age','30');
    prev.set('name','小满zs');
    return prev;
})}>change</button>
//修改完成之后的 URL 为 `http://localhost:5173/search?age=30&name=小满zs`

类型

ts
function useSearchParams(
  defaultInit?: URLSearchParamsInit
): [URLSearchParams, SetURLSearchParams];

type ParamKeyValuePair = [string, string];

type URLSearchParamsInit =
  | string
  | ParamKeyValuePair[]
  | Record<string, string | string[]>
  | URLSearchParams;

type SetURLSearchParams = (
  nextInit?:
    | URLSearchParamsInit
    | ((prev: URLSearchParams) => URLSearchParamsInit),
  navigateOpts?: : NavigateOptions
) => void;

interface NavigateOptions {
  replace?: boolean;
  state?: any;
  preventScrollReset?: boolean;
}

Released under the MIT License.