页面使用ssr渲染的时候,react的生命周期中render()阶段负责创建虚拟dom,进行diff算法,更新dom树,render及之前的阶段,并没有将组件渲染为实际的dom节点,所以不能获取window、document对象,报错如下:
官方解决办法
在使用document/window组件的父组件写成:
import dynamic from 'next/dynamic'
const DynamicComponent = dynamic(() => import('../components/hello'