Next.js-Window或Document 对象未定义

Next.js-Window 或 Document 对象未定义?

背景: 在引入第三方插件,或者直接在代码中写 window 时,控制台会给出警告,window 未定义。

发生在这个问题的原因是,node服务端并没有windowdocument 对象。解决方法,通过 process.browser 来区分环境。

1
2
3
4
5
6
if (process.browser) {
// 引入第三方插件
require('***')
// 或者修改window对象下某一属性
window.mbk = {}
}
1
2
3
componentDidMount(){
this.MyModule = require'./ MyModule'
}
1
2
3
4
5
6
7
8
9
10
const DynamicComponentWithNoSSR = dynamic(import'../ components / hello3'),{
ssr:false
})

export default()=>
<div>
<标题/>
<DynamicComponentWithNoSSR />
<p>主页在这里!</p>
</div>
感谢你的打赏哦!