vue-baidu-map
vue-baidu-map copied to clipboard
在循环Marker里面嵌套Label,出现 Cannot read property 'lat or lng' of undefined
[BUG 反馈] 在循环Marker里面嵌套Label,出现 Cannot read property 'lat or lng' of undefined
浏览器版本号
Chrome 61.0.3163.100(正式版本)
Vue 版本号
3.11
组件库版本号
0.21.11
现象描述
渲染Label报错
<bml-marker-clusterer :averageCenter="true">
<bm-marker v-for="(marker,index) of markList" :key="index" @click="infoWindowOpen(index)" :position="{lng: markList[index].lng, lat:
markList[index].lat}" :icon="{url:markList[index].icon, size: {width: 40, height: 50}}">
<bm-label :content="markList[index].plateNumber+'('+markList[index].status+')'" :position="{lng: markList[index].lng, lat: markList[index].lat}"
:offset="labelOffset" :labelStyle="{background:'#FFFF00', fontSize : '12px'}"/>
</bm-marker>
</bml-marker-clusterer>
完整异常信息
[Vue warn]: Error in callback for watcher "position.lat": "TypeError: Cannot read property 'lng' of undefined"
found in
---> <BmLabel>
<BmMarker>
<BmlMarkerClusterer>
<BmMap>
<DashboardAdmin>
<AppMain> at src\views\layout\components\AppMain.vue
<Layout> at src\views\layout\Layout.vue
<App> at src\App.vue
<Root>
在线示例 / 仓库 URL
示例见“现象描述”
复现用例
预期输出
Label正常显示,控制台不报错
实际输出
Label正常显示,但是控制台报错
请问如果解决的?
同样的问题,这段代码的center有问题
'position.lng' (val, oldVal) {
const {BMap} = this
const lng = val
if (val.toString() !== oldVal.toString() && lng >= -180 && lng <= 180) {
this.originInstance.setCenter(createPoint(BMap, {lng, lat: this.center.lat}))
}
},
'position.lat' (val, oldVal) {
const {BMap} = this
const lat = val
if (val.toString() !== oldVal.toString() && lat >= -74 && lat <= 74) {
this.originInstance.setCenter(createPoint(BMap, {lng: this.center.lng, lat}))
}
},
都2023年了,这个issue烂尾了吗