Next.js动态导入节点模块

JavaScript React.js

西门

2020-03-23

使用react-leaflet节点模块时,出现窗口未定义的错误,因为它依赖于窗口,并且SSR当然不支持窗口。我发现了next / dynamic,但是,我发现的所有示例都显示了如何导入组件而不是节点模块。是否可以包含节点模块?作为示例,这就是我正在导入的内容,该错误给出了窗口未定义的错误import { Map, TileLayer, Marker } from 'react-leaflet';

第3122篇《Next.js动态导入节点模块》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

1个回答
西门 2020.03.23

当您在组件上调用该依赖项的组件(Map,TileLayer,Marker)时,就会发生该错误。

当您的应用程序在服务器端呈现时,出现未定义的窗口,因为窗口对象属于浏览器。

为了避免window of undefined在服务器端出现错误,可以process.browser在组件中使用

参考:https : //github.com/zeit/next.js/issues/2473?# issuecomment- 362119102

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android