admin

Astro中getStaticPaths和posts类型问题导致的渲染错误排查?

Belohnung1金钱Unbeantwortet
  1. ---
  2. import BaseLayout from "../../layouts/BaseLayout.astro";

  3. export async function getStaticPaths() {
  4.   const allPosts = await Astro.glob('../posts/*.md');

  5.   const uniqueTags = [...new Set(allPosts.map((post) => post.frontmatter.tags).flat())];

  6.   return uniqueTags.map((tag) => {
  7.     const filteredPosts = allPosts.filter((post) => post.frontmatter.tags.includes(tag));
  8.     return {
  9.       params: { tag },
  10.       props: { posts: filteredPosts },
  11.     };
  12.   });
  13. }

  14. const { tag } = Astro.params;
  15. const { posts } = Astro.props;
  16. ---

  17. <BaseLayout>

  18.   <p>包含「{tag}」标签的文章</p>
  19.   <ul>
  20.     {posts.map((post) => <li><a href={post.url}>{post.frontmatter.title}</a></li>)}
  21.   </ul>

  22. </BaseLayout>
Code kopieren


Keine Kommentare

Schreiben Sie den ersten Kommentar

Sie müssen sich anmelden, um antworten zu können Anmelden | 立即注册

Cpoyright © 2021-2025 Discuz! X All Rights Reserved.

Powered by Discuz! X5.1

InDiesem BereichBeitrag
Nach oben
Schnellantwort Nach oben Zurück zur Liste