地图echart报错“BMap.Overlay is not a constructor”

这两天首页做个地图echart,调用了百度地图api。按照流程写完之后echats的地图出不来报错“BMap.Overlay is not a constructor”,耽误了好久终于解决

本地引用如下

 			<baidu-map
              id="container"
              ak="n3ugvN7lr9xYburKwMf7R9j0"
              style="height:99%"
              :scroll-wheel-zoom="true"
              @ready="initMap"
            ></baidu-map>

排查

1,检查地图及echart需要引用的js是否都引入进来
2,检查初始化方法及是否调用成功
3,检查地图初始化和echarts初始化是否是同步进行

问题根源

bebugger跟踪BMap.Overlay存在,但是他为什么报这个错呢?
整了半天发现初始化地图和初始化echart是异步进行,initMap()echarts.init( document.getElementById("container2"))不在同一个function中
初始化地图比初始化echart慢了几百毫秒,导致加载echarts时地图还没有初始化完成导致错误

解决办法

echarts.init( document.getElementById("container2"))放在initMap()内执行,保证同步

 //初始化地图
    initMap({ BMap, map }) {
      this.BMap = BMap;
      this.map = map;
        //中间echart
      var myChart = (this.chart = echarts.init(
        document.getElementById("container")
      ));
      myChart.setOption(option);
    },
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值