javascript - 如果在 Next.js 中动态路由 id 是“未定义”,我如何在 useEffect 挂钩中重定向没有运行函数的页面?
问题描述
我正在开发我的网站Next.js
我的问题
/
如果动态路由id (router.query.id)
值[id].js
是,我想将页面重定向到主页(' ') undefined
。
const router = useRouter();
let id = router.query.id;
if (typeof id === 'string') {
id = id.replace("&", "%26")
}
async function getData() {
await axios.get(API_URL).then((res) => {
setList(Object.values(res.data));
setIsLoading(false);
});
}
useEffect(() => {
if (id === undefined) router.push('/');
else if(id !== undefined){
setCurrentPage(page)
getData();
}
if(page === undefined) {
setCurrentPage(1)
}
}, [id]);
上面的片段是代码。我尝试使用useEffect
具有 id 深度的反应钩子来重定向,但这种方式并没有像我预期的那样工作。此代码只是重定向到主页,但async function getData()
在安装后触发,并且最近在使用 print 重定向后获取数据Unhandled Runtime Error Error: Network Error
。
我也试过
useEffect(() => {
if (id === undefined) router.push('/');
}, [])
但结果是一样的。
如果动态路由 id 是,如何在 useEffect 挂钩中重定向没有运行功能的页面undefined
?
谢谢您的帮助!:)
解决方案
推荐阅读
- go - 是否可以设置所需的 min go 版本?
- pdf - PDF 中的“分离”数字签名
- javascript - 无法从具有日期范围的 Firestore 获取数据
- linux - 进入变量并维护标准输出?
- mysql - 处理超过 20 条记录时出现问题
- python - 设置 Beeware:我无法在激活的 venv 中创建 JAR 支持文件
- reactjs - 无法将照片从 React Native 发送到 Cloudinary
- c++ - 从控制台将输入作为段落
- python-3.x - 在安装的不同文件夹中使用 python 程序中的 python 库 (Biopython)
- android - Retrofit - 转换 Json 响应以使用 Room 轻松存储数据