在 next.js 项目中,我有一个服务器端呈现的页面,它接受查询参数,例如
site.com/page?search=foo
我想访问服务器端的 url 或 url 参数
{search: "foo"}
,任何组件的 outside。就我而言,需要导出页面上的元数据。理想的例子:
const queryParams = {search: "foo"}
// ^ how do I actually get this
export const metadata: Metadata = {
openGraph: {
description: "this is a search for " + queryParams.search
}
}
export default function Page() {
return <div>content</div>
}
我看到了 getStaticProps 的文档,但事实上这只在内部运行代码,然后稍后导出组件 - 我不能在其中运行
export const metadata
。 useRouter
或 window
的其他文档不起作用,因为这些文档是客户端的。
您可以使用以下函数动态生成元数据:
export async function generateMetadata({ params , searchParams }) {
return {
title: '...',
}
}
您可以访问 params 和 searchParams :https://nextjs.org/docs/app/api-reference/functions/generate-metadata