reactjs - React Next 的 Openlayers 编译错误
问题描述
我正在使用带有 React Next 的 openlayers 库。使用 npm 添加 openlayers 库。但是当我导入“从'ol / Map'导入地图”库时,我收到以下错误。
import PluggableMap from './PluggableMap.js';
^^^^^^^^^^^^
SyntaxError: Unexpected identifier
at new Script (vm.js:80:7)
at createScript (vm.js:274:10)
at Object.runInThisContext (vm.js:326:10)
at Module._compile (internal/modules/cjs/loader.js:664:28)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
at Module.load (internal/modules/cjs/loader.js:600:32)
at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
at Function.Module._load (internal/modules/cjs/loader.js:531:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object.ol/Map.js at Object.ol/Map.js (<path>\.next\server\static\development\pages\index.js:1730:18)
at __webpack_require__ (<path>\.next\server\static\development\pages\index.js:23:31)
at Module../components/mappanel/map.js (<path>\.next\server\static\development\pages\index.js:557:67)
at __webpack_require__ (<path>\.next\server\static\development\pages\index.js:23:31)
at Module../pages/index.js (<path>\.next\server\static\development\pages\index.js:1302:83)
at __webpack_require__ <path>\.next\server\static\development\pages\index.js:23:31)
我在 next.config.js 和 .babelrc 文件中没有做任何事情。如何解决错误?
注意:Openlayers,与经典反应一起工作。
沙盒链接在这里:https ://codesandbox.io/s/react-openlayers-7r04v
谢谢,
解决方案
似乎这ol
在服务器端不起作用,因为它需要窗口和类似的东西,所以你需要这样做
componentDidMount() {
const map = require("ol/Map").default;
}
推荐阅读
- javascript - 如何重置 vuetify 的 v-input-file
- postgresql - 从其他 pod 访问内部数据库服务的 Kubernetes 最佳实践
- mysql - 如何在 Eloquent 中查询可分性?
- scheme - 使用尾递归实现重复的函数组合
- java - 通过静态代码分析检测 Java (Guice) 中的所有注入点
- java - 如何在 IntelliJ 的项目结构中设置默认 Java 版本?
- javascript - Protractor JS 无法点击 HREF
- python - 根据 NULL 值将计算列添加到 pandasdataframe
- c++ - C ++以相同的方式排列两个向量
- windows - 批处理脚本不会使用用户输入删除 Temp 文件夹的内容