Next.js Discord

Discord Forum

generateStaticParams() doesn't actually generate static pages?

Unanswered
Brown bear posted this in #help-forum
Open in Discord
Brown bearOP
Hi, im trying to create a blog site with Next.JS app router, Prisma, MDX.

When i build & run this, the "static" pages get updated as soon as i update the article, while this is the functionality i want (blog pages rebuild if the db record gets updated), pretty sure this wouldn't happen automatically if they were statically prebuilt.

/article/[id]/page.tsx
import { prisma } from "@/db";
import { notFound } from "next/navigation";

export const dynamicParams = true;

interface PageParams {
  id: string;
}

export async function generateStaticParams() {
  const posts = await prisma.blogArticle.findMany({
    select: {
      id: true,
    },
    where: {
      status: "published",
    },
  });

  return posts.map((post) => ({
    id: post.id.toString(),
  }));
}

export default async function Page({
  params,
}: {
  params: Promise<PageParams>;
}) {
  const postId = parseInt((await params).id);

  const post = await prisma.blogArticle.findUnique({
    where: { id: postId, status: "published" },
  });

  if (!post) {
    return notFound();
  }

  return (
    <div className="flex flex-col items-left p-8 font-[family-name:var(--font-geist-sans)]">
      <main className="flex flex-col items-center sm:items-start">
        <h1>{post.title}</h1>
        <p>{post.content}</p>
      </main>
    </div>
  );
}


Im pretty new to webdev, can you guys share some insights on what might be going on?
P.S I havent got around to building the mdx yet, trying to figure this prebuild issue rn.

2 Replies

Brown bearOP
Bump 😅
Brown bearOP
chat?