ReferenceError:谷歌没有定义VUE

时间:2017-10-16 14:06:12

标签: vuejs2

我正在 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)

1 个答案:

答案 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>