NextJS ReferenceError:文档未定义

Mah*_*qar 6 cookies next.js

我正在制作一个 NextJS 应用程序。我正在使用 cookie 来保存从 REST API 返回的访问令牌。在 中login.js,cookie 已成功创建:

  document.cookie = `token=${res.data.result.accessToken}; path=/;`;
  
Run Code Online (Sandbox Code Playgroud)

但是当我访问它时header.js

if (document.cookie.split(';').some((item) => item.trim().startsWith('token='))) {
     SetAuth("true");
}
Run Code Online (Sandbox Code Playgroud)

它说;

ReferenceError: document is not defined
Run Code Online (Sandbox Code Playgroud)

有什么原因或任何其他方式来保存令牌并访问它们?

小智 8

由于 Nextjs 使用 SSR,当代码在服务器端运行阶段执行时,您无法访问文档,您可以做一些检查来了解您的代码是否正在浏览器中执行,您可以检查这篇文章中的解决方案。

作为快速答案,您可以首先检查是否有权访问窗口对象

if (typeof window !== "undefined") {
 // your code with access to window or document object here 
 }
Run Code Online (Sandbox Code Playgroud)