我正在 Vue 中使用 vue2-google-map 组件,并且它们正常运行。 但是,如果我尝试在数据返回中创建谷歌对象或计算如
new google.maps.Point(20,40)
有错误
ReferenceError:google未定义
在VueComponent.data(app.js:sourcemap:69896)
at getData(app.js:sourcemap:6550)
在initData(app.js:sourcemap:6509)
在initState(app.js:sourcemap:6440)
在VueComponent.Vue._init(app.js:sourcemap:7611)
在新的VueComponent(app.js:sourcemap:7783)
at createComponentInstanceForVnode(app.js:sourcemap:7060)
在init(app.js:sourcemap:6877)
在createComponent(app.js:sourcemap:8532)
在createElm(app.js:sourcemap:8475)
答案 0 :(得分:4)
问题解决了!
vue2-google-map包生成类型为 async 的Google地图API脚本。
因此您需要等待完整的地图下载,然后生成组件
<gmap-map ref="map">
<vue-component v-if="mapLoaded" ></vue-component>
</gmap-map>
<script>
export default {
data () {
return {
mapLoaded: false,
}
},
mounted:function() {
this.map = this.$refs.map.$mapObject;
this.$refs.map.$mapCreated.then(() => {
this.mapLoaded=true
})
</script>