我下面的代码会引发错误:
[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);
}
}
};
有什么明显的事情表明我做错了吗?我可以添加图层作为参考/视图图层吗?
结果我必须在
handleAdd
方法中使用 动态导入 FeatureLayer 模块
const [TileLayer] = await loadArcGISJSAPIModules(['esri/layers/TileLayer']);
,而不是在脚本开始时导入它。
非常有用的示例,引导我找到了解决方案,并且可以在 这个 github 存储库中找到更多示例。
我遇到了与图形层相关的错误,可以通过以下方式解决: 不要使用map.add(),而是使用map.layers.add()。