我正在使用 react-router v6。我想导航到具有 searchParams 的 URL,但我没有看到一种开箱即用的方法。useNavigate允许我通过传入一个字符串来导航到一个 URL。useSearchParams允许我在当前页面上设置 searchParams。
我可以使用生成 searchParamscreateSearchParams然后将其转换为字符串并将其附加到 URL 的末尾,中间有一个?,但这似乎是一个黑客。
我希望能够执行以下操作:
const navigate = useNavigate();
// listing?foo=bar
navigate("listing", {
params: {
foo: "bar"
}
});
我的hacky解决方法:
function useNavigateParams() {
const navigate = useNavigate();
return (url: string, params: Record<string, string | string[]>) => {
const searchParams = createSearchParams(params).toString();
navigate(url + "?" + searchParams);
};
}
const navigateParams = useNavigateParams();
navigateParams("listing", {
foo: "bar"
});
我错过了文档中的某些内容吗?