动态路由阻止重定向到Next.js中的404页面

动态路由阻止重定向到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})=>

我在下一个.js项目中有一个
[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组件作为默认组件更好。