2017-11-04 11 views
2

コンポーネントからmixinメソッドを呼び出せません。このエラーはthis.hello is not a functionです。コンポーネント内のミックスインのメソッドを呼び出す

Vueインスタンスからhello()を呼び出すことはできますが、コンポーネント内で呼び出すことはできません。

何が問題なのですか?

<div id='vue-app'> 
    <cmp></cmp> 
</div> 
const mixin = { 
    methods: { 
    hello() { 
     return 'Hello World!'; 
    } 
    }, 
    created() { 
    console.log('Mixin Created!'); 
    }, 
}; 

const cmp = { 
    created() { 
    console.log('From Cmp:', this.hello()); 
    }, 
}; 

new Vue({ 
    components: { 
    cmp 
    }, 
    el: '#vue-app', 
    mixins: [mixin], 
    created() { 
    console.log('From VM:', this.hello()); 
    }, 
}); 

https://jsfiddle.net/ar464soq/

答えて

1

まあ、私がいないVueの親インスタンスから、コンポーネントインスタンスの全体のミックスインをロードする必要がありそうです:)

+0

のいずれかの子コンポーネントから呼び出すことができます? – hendra1

1

正しい、ミックスインメソッド/データのみです追加されたインスタンスで使用可能です。しかし、ルートインスタンスにミックスインが本当に必要な場合は、

関連する問題