动态路由阻止重定向到Next.js中的404页面
我在下一个.js项目中有一个动态路由阻止重定向到Next.js中的404页面,next.js,Next.js,我在下一个.js项目中有一个[pid].js文件。我还想实现一个定制的404页面,但问题是:我把404.js文件放在/pages目录中。如果我删除我的[pid].js文件,404页面就可以正常工作。但是,如果我保留我的[pid].js文件,第一个请求将进入pids,并且由于url与pids中定义的任何页面都不匹配,我会得到一个错误。我应该从pids显式返回404组件吗?这是一种好的做法吗 下面是代码(现在不会重定向到404页): [pid].js constpid=({url,props})=>
[pid].js
文件。我还想实现一个定制的404页面,但问题是:我把404.js
文件放在/pages
目录中。如果我删除我的[pid].js
文件,404页面就可以正常工作。但是,如果我保留我的[pid].js
文件,第一个请求将进入pids,并且由于url与pids中定义的任何页面都不匹配,我会得到一个错误。我应该从pids显式返回404组件吗?这是一种好的做法吗
下面是代码(现在不会重定向到404页):
[pid].js
constpid=({url,props})=>{
常量getPages=()=>{
让component=null;
开关(url){
“结帐”案例:
分量=;
打破
//其他开关箱。。。
违约:
//我应该在这里返回404组件吗?
分量=;
}
返回组件;
};
返回getPages();
};
导出异步函数getServerSideProps(上下文){
const res=await getReq(`/getUrl`、'content',context);
开关(res.url){
“结帐”案例:{
返回{
道具:{
url:res.url,
道具:{
…//我的其他道具
},
},
};
}
违约:
返回{
道具:空,
};
}
}
Pid.propTypes={
url:PropTypes.string.isRequired,
};
导出默认Pid;
从Next.js 10,您可以从getServerSideProps
返回notFound:true
以触发404页面
导出异步函数getServerSideProps(上下文){
const res=await getReq(`/getUrl`、'content',context);
开关(res.url){
“结帐”案例:{
返回{
道具:{
//我的其他道具
},
};
}
违约:
返回{
未发现:正确
};
}
}
我把它放在
default
案例中作为一个例子,但是可以在任何其他点/条件下返回它。是的,可以,谢谢。我认为这比返回404组件作为默认组件更好。