我遇到了以下错误:
由于初始UI与服务器端呈现的不匹配,导致水合失败。
我正在使用 getServerSideProps
,在我的页面中,我检查是否在浏览器中 (window=='undefined'
),然后相应地返回内容:
export default function Page() {
const { data: session } = useSession()
if (typeof window == 'undefined') return null
if (session) {
return (
<div>
<h1>Protected Page</h1>
<p>You can view this page because you are signed in.</p>
</div>
)
}
return <p>Access Denied</p>
}
但是这里的这一行
if (typeof window == 'undefined') return null
似乎出现了问题。当注释掉这行代码时,一切都正常。
服务器端返回的内容与客户端返回的内容不同,但我不太明白应该如何解决这个问题,以及为什么会出现这个问题?
我进行此检查是“因为我只想在客户端渲染此页面”,并且当我有一个会话时才进行渲染。难道我理解错了吗?
unstable_getServerSession()
,如文档所述。 - shennan