当用户进入一个不存在的动态路由时,我试图重定向用户。动态路由指向一个静态定义的字段数组中的字段。
这是我当前页面的代码:
import { fields } from "@/data/fields";
export function generateStaticParams() {
return fields.map((field) => ({ slug: field.slug }));
}
const getField = async (slug) => {
return fields.find((field) => field.slug === slug);
};
const FieldPage = async ({ params }) => {
const field = await getField(params.field);
return <>{field.name}</>;
};
export default FieldPage;
字符串
有一些if (!field) // redirect or throw error
,我可以在我的代码中实现,使这一工作,这将是赞赏。目前,我已经尝试这样做在getField
,但它抛出一个500错误在构建模式。
1条答案
按热度按时间qgzx9mmu1#
我刚刚尝试了NextJS的API,我找到了一个答案:
字符串
当在静态数据集中找不到字段时,
redirect
函数会立即将用户重定向回/
页面。如果需要显示未找到(404)错误,您也可以使用NotFound
重定向到文件系统中定义的not-found.js
页面。希望这对某些人有所帮助!