Vuejs2 ReferenceError:未定义google VUE

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)

我在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)
在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实例添加了属性。你到底想做什么?