问题:我需要访问v6中组件外部的URL参数。
我知道我可以在组件内部使用useParams()
挂钩,但如果我需要访问组件外部的URL参数怎么办?
这就是我在版本5:中的做法
// v5:
<Route
path = "/blog/:id"
render = {
({match:{params}}) => <Post item={ getPostById(params.id) } />
}
/>
我正在访问< Post />
组件之外的:id
参数。
如何在v6中编写以前的代码
使用({match:{params}}) => <Post item={ getPostById(params.id) } />
,您有效地编写了一个匿名React组件,该组件使用match
道具并呈现Post
组件。
如果您的组件不能使用useParams
挂钩,那么编写一个包装器函数组件,从useParams
挂钩读取id
参数并传递id
。
const PostWithIdParam = () => {
const { id } = useParams();
return <Post item={getPostById(id)} />;
};
...
<Route
path="/blog/:id"
element={<PostWithIdParam />}
/>