Error: There is no source with this ID in mapbox-gl-js
Error: There is no source with this ID in mapbox-gl-js
我想从地图中删除源和图层。每当我想删除源和 layerrs 表单地图时,我都会使用 removeSourceAndLayers()
函数。
const removeSourceAndLayers=(map)=>{
for(var i=0;i<dataSet.length;i++){
try{
// source or layer might not pesent
// which we are trying to remove
if(map.getLayer(`empty-source-${i}`))
map.removeLayer(`empty-source-${i}`);
if(map.getLayer(`complete-source-${i}`))
map.removeLayer(`complete-source-${i}`);
if(map.getSource(`empty-source-${i}`))
map.removeSource(`empty-source-${i}`);
if(map.getSource(`complete-source-${i}`));
map.removeSource(`complete-source-${i}`);
}catch(e){
console.log(e);
}
}
}
我遇到了这个错误。
DynamicRoute.jsx:39 Error: There is no source with this ID
at i.removeSource (mapbox-gl.js:35)
at r.removeSource (mapbox-gl.js:35)
at removeSourceAndLayers (DynamicRoute.jsx:37)
at clean (DynamicRoute.jsx:93)
at commitHookEffectListUnmount (react-dom.development.js:19710)
at commitPassiveHookEffects (react-dom.development.js:19768)
我正在检查源和层是否与当前 ID 一起出现然后删除 continue.But,仍然出现错误。
jsx:39 行是 console.log(e);
.
你最后一个 if 语句有一个 ;最后,如果你删除它,它就会起作用。
if(map.getSource(`complete-source-${i}`)); // <---
map.removeSource(`complete-source-${i}`);
您的代码现在的编写方式与下面的代码具有相同的结果,map.removeSource() 始终被调用:
if(map.getSource(`complete-source-${i}`)) {
}
map.removeSource(`complete-source-${i}`);
我想从地图中删除源和图层。每当我想删除源和 layerrs 表单地图时,我都会使用 removeSourceAndLayers()
函数。
const removeSourceAndLayers=(map)=>{
for(var i=0;i<dataSet.length;i++){
try{
// source or layer might not pesent
// which we are trying to remove
if(map.getLayer(`empty-source-${i}`))
map.removeLayer(`empty-source-${i}`);
if(map.getLayer(`complete-source-${i}`))
map.removeLayer(`complete-source-${i}`);
if(map.getSource(`empty-source-${i}`))
map.removeSource(`empty-source-${i}`);
if(map.getSource(`complete-source-${i}`));
map.removeSource(`complete-source-${i}`);
}catch(e){
console.log(e);
}
}
}
我遇到了这个错误。
DynamicRoute.jsx:39 Error: There is no source with this ID
at i.removeSource (mapbox-gl.js:35)
at r.removeSource (mapbox-gl.js:35)
at removeSourceAndLayers (DynamicRoute.jsx:37)
at clean (DynamicRoute.jsx:93)
at commitHookEffectListUnmount (react-dom.development.js:19710)
at commitPassiveHookEffects (react-dom.development.js:19768)
我正在检查源和层是否与当前 ID 一起出现然后删除 continue.But,仍然出现错误。
jsx:39 行是 console.log(e);
.
你最后一个 if 语句有一个 ;最后,如果你删除它,它就会起作用。
if(map.getSource(`complete-source-${i}`)); // <---
map.removeSource(`complete-source-${i}`);
您的代码现在的编写方式与下面的代码具有相同的结果,map.removeSource() 始终被调用:
if(map.getSource(`complete-source-${i}`)) {
}
map.removeSource(`complete-source-${i}`);