我使用Nextjs 13的“generateStaticParams”函数在与我从另一个函数获取的数据中的一组id不匹配的路由上抛出404,如下所示:
export async function generateStaticParams() {
const posts = await PostsData();
return posts.map((post) => ({
postId: post.id,
}));
}
我正在寻找一种方法来有一个自定义404页面。据我所知,为了有一个自定义404页面,你需要创建一个“not-found.tsx”页面,并从“next/navigation”导入“notFound”。然后,如果你无法找到与页面参数中找到的ID匹配的项目,你需要调用“notFound()
”。
然而,如果我删除generateStaticParams()
,这个notFound()函数只会将用户路由到自定义404。如果该函数仍然存在,用户仍然会被路由到Nextjs 13的默认404页面。
这两个函数是否不兼容?如果我想使用generateStaticParams()
,我是否无法自定义404页面?任何帮助都非常感谢。
1条答案
按热度按时间fd3cxomn1#
很快我就找到了答案。为了防止Nextjs自动生成页面,即使在不是静态生成的路由上,我使用了:
删除此行使我可以保留现有路由上的SSG功能,调用
notFound()
使我可以将用户路由到由not-found.tsx
中的内容定义的自定义404页面