我正在使用 Next.js 13 应用程序路由器。我将登录时收到的 JWT 令牌存储在会话存储中。如果该特定路由/文件夹的
page.js
是客户端组件,我就能够访问所有路由中所有 page.js
页面中的令牌。这在开发期间工作得很好,即当我运行 npm run dev
时,但是当我进行构建时,即 next build
它失败并给了我错误 ReferenceError: sessionStorage is not defined
.
在 Next.js 中,每个路由的
page.js
是否有必要是服务器组件而不是客户端。在构建过程中它们是否被视为服务器组件??
那是因为
sessionStorage
仅适用于浏览器。
不要使用
sessionStorage
,而是尝试使用 window.sessionStorage
。