You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用generateMetaData时,Next.js中<button>标签引发客户端异常

Next.js中使用generateMetaData时

在Next.js项目中使用generateMetaData生成元数据时,页面内的<button>标签无法正常响应点击事件,触发错误提示:Application error: a client-side exception has occurred (see the browser console for more information)。

generateMetaData代码

const getArticle = cache((id) => {
  const articleService = new ArticleService();
  return articleService.getOne(id).then((res) => {
    return res.resultFinal;
  });
});

export async function generateMetadata({ params }) {
  const id = params.id;
  const articleService = new ArticleService();

  const article = await articleService.getOne(id).then((res) => {
    return res.resultFinal;
  });

  if (!article) {
    return {
      title: "Article not found",
      description: "Article not found",
      openGraph: {
        title: "Article not found",
        description: "Article not found",
      },
    };
  }

  return {
    title: article.title,
    description: article.description,
    openGraph: {
      title: article.title,
      description: article.description,
      images: [process.env.NEXT_PUBLIC_IMAGE_BASE_URL + "/" + article.medias[0].url],
    },
  };
}

页面组件代码

export default async function Page({ params, searchParams }) {
  const article = await getArticle(params.id);

  const sharedFacebook = async () => {
    alert("clicked");
  };

   return (
      <>
      <button onClick={sharedFacebook}></button>
      </>
    )
}

已尝试的解决方式:

  • 在sharedFacebook函数内添加"use client",按钮可正常渲染,但点击仍触发相同错误;
  • 在组件顶部添加"use client",问题依旧存在。

内容的提问来源于stack exchange,提问作者Lhony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 19:10:36