Next.js动态导入节点模块

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

西门2020/03/23 22:04:58

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

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

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

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