Vuejs2 ReferenceError:未定义google VUE
我在Vue中使用vue2谷歌地图组件,它们工作正常。 但如果我尝试在数据返回或类似计算中创建google对象Vuejs2 ReferenceError:未定义google VUE,vuejs2,Vuejs2,我在Vue中使用vue2谷歌地图组件,它们工作正常。 但如果我尝试在数据返回或类似计算中创建google对象 new google.maps.Point(20,40) 有错误吗 引用错误:未定义google 位于VueComponent.data(app.js:sourcemap:69896) 在getData(app.js:sourcemap:6550) 在initData上(app.js:sourcemap:6509) 在initState(app.js:sourcemap:6440)
new google.maps.Point(20,40)
有错误吗
引用错误:未定义google位于VueComponent.data(app.js:sourcemap:69896)
在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)
在createComponentInstanceForVnode(app.js:sourcemap:7060)
在初始化时(app.js:sourcemap:6877)
在createComponent(app.js:sourcemap:8532)
在createElm(app.js:sourcemap:8475)
问题解决了 vue2谷歌地图包生成类型为async的谷歌地图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>
导出默认值{
数据(){
返回{
mapploaded:false,
}
},
挂载:函数(){
this.map=this.$refs.map.$mapObject;
这个.$refs.map.$mapscreated.then(()=>{
this.mapload=true
})
该错误意味着google
对象未在您访问它的范围内定义。您在哪里以及如何定义google
?您使用的是
标记?还是使用的是npm/webpack?@thanksd,我使用的是npm vue2谷歌地图包。他通过以下表达式定义了谷歌api脚本:Vue.use(VuegologleMaps,{load:{key:'AIzaSyBvWE_sIwKbWkiuJQOf8gSk9qzpO96fhfY',libraries:'places',}}})
看起来不像是设置了一个全局google
变量。它似乎提供了要在模板中使用的Vue组件,并向Vue实例添加了属性。你到底想做什么?