首页 > 解决方案 > 如果在 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

谢谢您的帮助!:)

标签: javascriptreactjsredirectnext.jsundefined

解决方案


推荐阅读