如何使用 ArcGIS Javascript API 解决“#add() 正在添加的项目不是图层或解析为图层的 Promise”错误?

问题描述 投票:0回答:2

我下面的代码会引发错误:

[esri.WebMap] #add() 添加的项目不是 Layer 或解析为 Layer 的 Promise。

两个

console.log()
语句都执行正常,并且返回对象中的属性看起来像预期的那样。该图层实际上已加载,但我收到错误,因为我无法实际将其添加到地图中。

我实际上正在使用 React 和 JimuMapView 实现自定义体验生成器小部件。

  const handleAdd = async (item) => {
    const layerUrl = item.url;
    const jimuMapView = state.jimuMapView;
  
    if (jimuMapView && jimuMapView.view) {
      const mapView = jimuMapView.view;
      const featureLayer = new FeatureLayer({ 
        url: layerUrl
      });
      
        console.log(featureLayer)

      try {
        await featureLayer.load();
        console.log(featureLayer); 
        mapView.map.add(featureLayer);
      } catch (error) {
        console.error("Error loading FeatureLayer", error);
      }
     }
    };

有什么明显的事情表明我做错了吗?我可以添加图层作为参考/视图图层吗?

reactjs arcgis arcgis-js-api
2个回答
0
投票

结果我必须在

handleAdd
方法中使用

动态导入 FeatureLayer 模块

const [TileLayer] = await loadArcGISJSAPIModules(['esri/layers/TileLayer']);
,而不是在脚本开始时导入它。

非常有用的示例,引导我找到了解决方案,并且可以在 这个 github 存储库中找到更多示例。


0
投票

我遇到了与图形层相关的错误,可以通过以下方式解决: 不要使用map.add(),而是使用map.layers.add()。

© www.soinside.com 2019 - 2024. All rights reserved.