【发布时间】:2022-01-12 03:59:36
【问题描述】:
我正在使用 react 和 react-router-dom。
我想在 User 组件中获取 :groupId 的值。
在 Groups 组件中,我可以使用 useParams 来获取 groupId,但我想在 User 组件中获取 groupId 并将其作为 props 传递给 Groups 组件。
import React from 'react';
import {Route, useHistory, useParams} from 'react-router-dom';
import User from 'components/User';
import useSearchParams from './useSearchParams';
export const User = () => {
const {query, setQuery} = useSearchParams();
const history = useHistory();
const {userId} = useParams<{
userId: string;
}>();
return (
<div>
<Route path="/users/:userId/groups/:groupId">
<Groups
onClose={() =>
history.push(`/users/${userId}/groups${location.search}`)
}
/>
</Route>
</div>
);
};
import React from 'react';
interface Props {
groupId?: string;
onClose: () => void;
}
export const Groups = ({groupId, onClose}: Props) => {
const params = useParams<{prospectId: string}>();
console.log(params)
return (
<div>
</div>
);
};
【问题讨论】:
-
当
User是渲染定义路由的组件时,您为什么想要或需要在User中获取路由参数?为什么不只使用Group中的useParams挂钩,这就是它的全部设计方式。你能解释一下用例吗?
标签: reactjs react-router react-router-dom