首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误: mapbox-gl-js中没有此ID的源。

错误: mapbox-gl-js中没有此ID的源。
EN

Stack Overflow用户
提问于 2020-11-17 12:01:20
回答 1查看 447关注 0票数 0

我想从地图中删除源和图层。每当我想要删除源和layerrs表单映射时,我都会使用removeSourceAndLayers()函数。

代码语言:javascript
复制
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);
            }
        }
    }

我得到了这个错误。

代码语言:javascript
复制
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);

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-18 12:39:57

最后一个if语句有一个;在最后,如果删除它,它将工作。

代码语言:javascript
复制
if(map.getSource(`complete-source-${i}`)); // <---
    map.removeSource(`complete-source-${i}`);

按照现在编写代码的方式,它的结果将与下面的代码相同,map.removeSource()总是被调用:

代码语言:javascript
复制
if(map.getSource(`complete-source-${i}`)) {
}

map.removeSource(`complete-source-${i}`);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64874900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档