首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法读取未定义的属性“_layerAdd”(vue +传单)

无法读取未定义的属性“_layerAdd”(vue +传单)
EN

Stack Overflow用户
提问于 2019-11-05 15:22:50
回答 1查看 813关注 0票数 0

在试图将一个功能组添加到我的地图时获取此错误:

TypeError:无法读取未定义的属性“_layerAdd”

抛出错误的代码片段:

代码语言:javascript
复制
<l-map
  id="mapid"
  :zoom="zoom"
  :center="center"
/>


var map = document.getElementById("mapid").__vue__;
    var drawnItems = new L.FeatureGroup();
    map.addLayer(drawnItems);

使用:

代码语言:javascript
复制
leaflet 1.5.1,
leaflet-draw 1.0.4,
vue 2.6.10,
vue2-leaflet 2.2.1
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-06 07:42:42

方法addLayer不是l-map组件的公共API的一部分。即使是这样,传递给addLayer的“层”也需要是Vue2Leaflet包装器组件,而不是底层传单层。

要查看这一点,请考虑LFeatureGroup.vue中的代码

https://github.com/KoRiGaN/Vue2Leaflet/blob/940e17d8a3b19740a448dedf220d0f7ba9c61d31/src/components/LFeatureGroup.vue#L27

注意它是如何调用的:

代码语言:javascript
复制
this.parentContainer.addLayer(this);

这里,this引用Vue组件l-feature-group的一个实例,而底层传单FeatureGroup位于this.mapObject属性中。

我建议您尝试使用l-feature-group组件。类似于:

代码语言:javascript
复制
<l-map
  id="mapid"
  :zoom="zoom"
  :center="center"
>
  <l-feature-group>
    <!-- relevant children -->
  </l-feature-group>
</l-map>

文档中有一个很好的例子:

https://korigan.github.io/Vue2Leaflet/#/components/l-feature-group/

我还强烈建议您避免使用document.getElementById("mapid").__vue__作为获取Vue实例的方法。使用ref$refs代替。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58714467

复制
相关文章

相似问题

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