nextJs:document、window报错

页面使用ssr渲染的时候,react的生命周期中render()阶段负责创建虚拟dom,进行diff算法,更新dom树,render及之前的阶段,并没有将组件渲染为实际的dom节点,所以不能获取window对象,如果是下面这样是可以拿到window对象的:
nextJs:document、window报错
官方解决办法
在使用document/window组件的父组件写成:

import dynamic from 'next/dynamic'

const DynamicComponent = dynamic(() => import('../components/hello'))

function Home() {
  return (
    <div>
      <Header />
      <DynamicComponent />
      <p>HOME PAGE is here!</p>
    </div>
  )
}

export default Home

这样即可解决。

上一篇:(转)C#中dynamic的正确用法


下一篇:Dynamic Type