此问题是关于Next.js 13应用路由器服务器端组件:
我知道在app/blog/[slug]/page.tsx
中,slug
参数是这样传递给默认函数的:
export default function Page({ params }: { params: { slug: string } }) {
return <div>My Post: {params.slug}</div>
}
字符串
如果这呈现了一个深度嵌套的组件,内部的组件是否可以访问URL slug
,类似于客户端组件上的useRouter
钩子?
例如,如果在app/blog/[slug]/page.tsx
中,我有:
export default function Page({ params }: { params: { slug: string } }) {
return <MyPost/>
}
型
并且MyPost
是:
function MyPost() {
return <div>This is the post: <PostText/></div>
}
型
有没有办法让PostText
得到slug
,而不必通过嵌套的组件传递它?
1条答案
按热度按时间ktecyv1j1#
据我所知,这在服务器组件中是不可能的。解决这个问题的唯一方法是将参数或slug作为prop传递给MyPost组件。