NodeJS Nextjs 13 build:位置未定义

i7uq4tfw  于 2023-08-04  发布在  Node.js
关注(0)|答案(1)|浏览(120)

我在一个nextjs应用上通过localstorage设置了一个身份验证检查,如下所示:

'use client'

const router = useRouter();
const [auth, setAuth] = useState<string | null>(null);

const checkAuth = () => {
    return localStorage.getItem('auth');
}

useEffect(() => {
        setAuth(checkAuth());
    }, []);

if (!auth) {
        router.push('/admin/login');
        return;
    }

return <div>...</div>

字符串
问题是,当我构建项目时,我得到以下错误:ReferenceError:位置未在AdminPage(admin/page.tsx:260:16)定义
请注意,我也尝试在访问localstorage之前检查是否未定义窗口对象,但错误仍然相同。是否有其他方法可以从localstorage检查auth项,以防止未连接的用户访问此页面并将其重定向到登录页面?

cgvd09ve

cgvd09ve1#

您需要为客户端组件使用“use client”指令。
"use client"作为包含此组件的文件的第一行。

相关问题