传递多个参数作为捕获它们
Passing Multiple parameters as catch them
我正在尝试通过添加 'id' 和 'type' 在 URL 中传递 'slug'。
代码:
`/${category.slug}?cid=${category._id}&type=${category.type}`
<Route path="/:slug" element={<ProductListPage />} />
URL
http://localhost:3000/Samsung-3whQlbAYpm?cid=61ed050cab3efd275d49efd6&type=store
问题:但是,在 useParam() 中,我只收到 slug 而不是 'cid' 和 'type'
等附加参数
例如,
let params = useParams();
它的参数只有 'slug' 值,即 'Samsung-3whQlbAYpm'
如何获得附加值?
useParams
钩子只会从 URL 的路径部分获取定义的路由参数。如果要访问 queryString,请使用 react-router-dom
.
中的 useSearchParams
挂钩
const [searchParams] = useSearchParams();
const cid = searchParams.get("cid");
const type = searchParams.get("type");
如果您碰巧仍在使用 react-router-dom
v5,则使用 location
对象获取要传递给 URLSearchParams
构造函数的 search
字符串。
const { search } = useLocation();
const searchParams = new URLSearchParams(search);
我正在尝试通过添加 'id' 和 'type' 在 URL 中传递 'slug'。
代码:
`/${category.slug}?cid=${category._id}&type=${category.type}`
<Route path="/:slug" element={<ProductListPage />} />
URL
http://localhost:3000/Samsung-3whQlbAYpm?cid=61ed050cab3efd275d49efd6&type=store
问题:但是,在 useParam() 中,我只收到 slug 而不是 'cid' 和 'type'
等附加参数例如,
let params = useParams();
它的参数只有 'slug' 值,即 'Samsung-3whQlbAYpm'
如何获得附加值?
useParams
钩子只会从 URL 的路径部分获取定义的路由参数。如果要访问 queryString,请使用 react-router-dom
.
useSearchParams
挂钩
const [searchParams] = useSearchParams();
const cid = searchParams.get("cid");
const type = searchParams.get("type");
如果您碰巧仍在使用 react-router-dom
v5,则使用 location
对象获取要传递给 URLSearchParams
构造函数的 search
字符串。
const { search } = useLocation();
const searchParams = new URLSearchParams(search);