VueJS Mixins方法

ses*_*360 0 javascript vue.js

我想在我的VUEJS模块中使用mixin:

<script>
    var GoogleMaps = require('../mixins/GoogleMaps');

    export default {
        mixins: [GoogleMaps],
        events: {
            MapsApiLoaded: function(data) {
                GoogleMaps.initGISMap(data);
            }
        },
}
</script>
Run Code Online (Sandbox Code Playgroud)

混入

export default {
    methods: {
        initGISMap(selector) {
            map = new google.maps.Map(selector, {
                zoom: 10,
                mapTypeId: google.maps.MapTypeId.ROADMAP,
            });

            // Set initial Location and center map to this location
            initialLocation = new google.maps.LatLng(48.184845, 11.252553);
            map.setCenter(initialLocation);

            // Create a searchmarker
            searchMarker = createMarker();

            // Init Autocomplete for GIS
            initAutoComplete();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但我收到一个错误,GoogleMaps.initGISMap不是一个函数.如何在组件中使用mixin方法?

Tre*_*pps 6

- 编辑以纠正我在解释您的需求时所犯的错误

当使用混入,你不引用方法MixinName.method() - 它只是"这" - 你的mixin并返回这些方法和属性是一阶,可以这么说,所以就必然要"本".

<script>
    var GoogleMaps = require('../mixins/GoogleMaps');

    export default {
        mixins: [GoogleMaps],
        events: {
            MapsApiLoaded: function(data) {
                this.initGISMap(data);
            }
        },
}
</script>
Run Code Online (Sandbox Code Playgroud)