fengMap报错 :Uncaught TypeError: Cannot read properties of undefined (reading ‘Q‘)

 

目录

 一、问题

 二、原因

三、总结


tips:如嫌繁琐,直接看总结即可!

一、问题

详细错误:

fengmap.map.min.js?8d2c:47451 Uncaught TypeError: Cannot read properties of undefined (reading 'Q')
    at r.value (fengmap.map.min.js?8d2c:47451:1)
    at eval (mapCover.js?61b4:88:1)
    at Array.forEach (<anonymous>)
    at eval (mapCover.js?61b4:79:1)
    at Array.forEach (<anonymous>)
    at MapCover.updateMarkerPosition (mapCover.js?61b4:70:1)
    at FengMapView.updateMarkerPosition (index.js?7118:108:1)
    at dealSockData (view.vue?c6da:233:1)
    at eval (view.vue?c6da:241:1)

 二、原因

1.remove方法报错,需要判断具有 Q属性才可以remove。可能原因:删除了一次又被删除;dom还没有生成就调用remove方法。

2.moveTo方法报错,需要判断具有Q属性的才可以moveTo。

   moveTo方法报错,一般是逻辑问题:因为remove就是删除了xxxmarker对象的Q属性。既然你都删除了,你为啥还要moveTo?在你需要moveTo的xxxmarker里面就不应该有没有Q属性的marker (你调用remove方法后,就应该把相应的xxxmarker对象也一起删除,避免影响后续的moveTo操作)!

当然还有一种情况就是刚刚加载dom时,就要求移动dom,这是也必须判断xxxmarker是否有Q属性。

  注:上述的xxxmarker是指用 fengmap提供的  FMDomMarkerFMImageMarker等API生成的标记对象。

三、总结

1.报错:Cannot read properties of undefined (reading ‘Q‘),有两个基本原因:

   1)remove方法报错

    2)moveTo方法报错

  本质原因:操作了不存在的domremove方法可能是因为dom还没有加载完就执行了remove方法,所以必须手动判断 xxxmarker是否有Q属性;moveTo也可能时因为dom还没有加载完就执行remove方法,所以此时也必须判断 xxxmarker是否有Q属性;

    总之:保证操作的时候dom存在,未加载的、已经删除的dom不执行remove、moveTo即可

 2.综述所述,为保险起见,最好在 remove和moveTo都判断一下是否有 Q属性,有Q属性才能执行remove和moveTo方法

 3.乌鱼子,其实这种事情应该是api内部处理的,但是蜂鸟没有处理,所以只能自己判断处理了。

/*

希望对你有帮助!

如有错误,欢迎指正,非常感谢!

*/ 

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值