Ich habeVue.js globales Ereignis funktioniert nicht
<component-one></component-one>
<component-two></component-two>
<component-three></component-three>
Komponente two
enthält Komponente three
.
Zur Zeit habe ich emit
ein Ereignis in <component-one>
, das in <component-three>
gefangen werden muss.
In <component-one>
Ich schieße das Ereignis wie folgt aus:
this.$bus.$emit('setSecondBanner', finalBanner);
Dann in <component-three>
ich es so fangen:
mounted() {
this.$bus.$on('setSecondBanner', (banner) => {
alert('Caught');
this.banner = banner;
});
},
Aber das Ereignis nie caught
!
definiere ich den Bus wie folgt aus (in meinem core.js):
let eventBus = new Vue();
Object.defineProperties(Vue.prototype, {
$bus: {
get:() => { return eventBus; }
}
});
Was hier falsch sein könnte? Wenn ich vue-dev-tools
überprüfe, kann ich sehen, dass das Ereignis gefeuert hat!
ich nicht replizieren kann, hier ist meine Arbeits Geige: https://jsfiddle.net/kr315jto/ emittieren Sie das Ereignis, nachdem die Instanz montiert wurde? –
Es ist kein Fehler, es ist völlig normales Verhalten - so funktionieren die Ereignisse. – WaldemarIce