报错:
原因:在mounted初始化地图的时候,因为异步问题会导致BMap is not defined,也就是百度的api还没完全引入或者加载完成,就已经进行地图初始化了
解决方法:(优化百度地图jssdk引入)
1.
require('echarts/extension/bmap/bmap');
2.新建一个map.js
export function loadBMap(ak) { return new Promise(function(resolve, reject) { if (typeof BMap !== 'undefined') { resolve(BMap) return true } window.onBMapCallback = function() { resolve(BMap) } let script = document.createElement('script') script.type = 'text/javascript' script.src = 'http://api.map.baidu.com/api?v=2.0&ak='+ ak +'&__ec_v__=20190126&callback=onBMapCallback' script.onerror = reject document.head.appendChild(script) }) }
3.在所需要的的页面中引入
import { loadBMap } from './map.js'
4.在mounted引用
this.$nextTick(() => { loadBMap("秘钥").then(() => { this.drawPie() }) })
这样就完成啦