vue-baidu-map icon indicating copy to clipboard operation
vue-baidu-map copied to clipboard

在循环Marker里面嵌套Label,出现 Cannot read property 'lat or lng' of undefined

Open wangjunfeng1991 opened this issue 6 years ago • 3 comments

[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正常显示,但是控制台报错

wangjunfeng1991 avatar Aug 09 '19 05:08 wangjunfeng1991

请问如果解决的?

git-chenjiqing avatar Nov 26 '20 09:11 git-chenjiqing

同样的问题,这段代码的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}))
      }
    },

bblue000 avatar Feb 20 '22 16:02 bblue000

都2023年了,这个issue烂尾了吗

linnngz avatar Apr 24 '23 08:04 linnngz