如何从嵌套的服务器端组件获取Next.js 13应用路由器动态URL参数?

zujrkrfu  于 2023-08-04  发布在  其他
关注(0)|答案(1)|浏览(144)

此问题是关于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,而不必通过嵌套的组件传递它?

ktecyv1j

ktecyv1j1#

据我所知,这在服务器组件中是不可能的。解决这个问题的唯一方法是将参数或slug作为prop传递给MyPost组件。

相关问题