小编Ton*_* Vu的帖子

避免 Nextjs 13 中的generateMetadata 函数重复处理的最佳方法是什么?

删除 Nextjs 13 中对generateMetadata的重复处理(使用应用程序路由)

你好,

我在使用 Nextjs 13 的generateMetadata(使用 App Router)时遇到问题。

在 page.js 中,我从 URL 获取 slug 并调用 API 来获取文章内容:

export default async function ArticleDetail({ params }) {
     const url = config.API.HOST + 'article/' + params.slug;

     let res = await fetch(url,
         {
             method: "GET",
             next: {
                 revalidate: 100
             }
         }
     );
     var article = await res.json();
     article = article.data;

     ...

     return (
          ...
     )
}
Run Code Online (Sandbox Code Playgroud)

在这个 ArticleDetail 函数中,我进行了一些处理来获取 html_title、html_description 信息(此信息还用于许多其他函数,而不仅仅是元标记)。

但是,generateMetadata 函数独立于 ArticleDetail 运行,我不知道如何在它们之间共享数据。即使使用全局变量也是不可能的,因为generateMetadata先完成运行,所以它无法获取ArticleDetail的数据。

Nextjs 的generateMetadata 文档中,它说 fetch …

javascript meta-tags next.js next.js13

5
推荐指数
0
解决办法
226
查看次数

标签 统计

javascript ×1

meta-tags ×1

next.js ×1

next.js13 ×1