在ArcGIS Map SDK for JavaScript 4.29中使用Dojo遇脚本错误求助
问题原因及解决方案
核心问题
ArcGIS Map SDK for JavaScript 4.29内置了适配版本的Dojo,无需手动从外部CDN引入Dojo 1.10.4。外部引入的低版本Dojo与SDK自带的Dojo版本冲突,引发脚本错误。
修正步骤
- 移除手动引入的外部Dojo脚本标签
- 将
viewDiv的<h1>标签改为<div>(MapView需要标准容器元素,h1作为标题标签会导致布局和渲染异常) - 清理require数组末尾多余的逗号(避免潜在语法问题)
修正后的完整代码
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Tutorial: Hello Dojo!</title> <link rel="stylesheet" href="https://js.arcgis.com/4.29/esri/themes/light/main.css"> </head> <body> <div id="viewDiv"></div> <script src="https://js.arcgis.com/4.29/"></script> <script> require([ "dojo/dom", "dojo/dom-construct", "esri/config", "esri/Map", "esri/views/MapView" ], function (dom, domConstruct, esriConfig, Map, MapView) { esriConfig.apiKey = "API KEY HERE"; const map = new Map({ basemap: "arcgis/topographic" }); const view = new MapView({ container: "viewDiv", map: map, center: [-118.243683, 34.052234], zoom: 13 }); }); </script> </body> </html>
补充说明
- 4.x版本的ArcGIS JS SDK完全依赖自身内置的Dojo环境,所有Dojo模块(如
dojo/dom)都可以直接通过SDK提供的require调用,无需额外配置 - 确保
viewDiv容器有合适尺寸,可添加CSS样式:
#viewDiv { height: 100vh; width: 100%; margin: 0; padding: 0; }
内容的提问来源于stack exchange,提问作者Ahsan Ali
相关产品推荐
相关产品推荐

