2017-09-23 1 views
1

Ich möchte nach einer Seitenaktualisierung die Eigenschaft von einer Komponente zur anderen übergeben, sie sind Geschwister. Ich möchte dies beim Laden der Seite tun. ich EventBus verwende, es zu tun:Vue.js eventBus gibt keine Eigenschaft nach der Seitenaktualisierung aus

EventBus.$emit('generatedSum', this.sum); 

es in der Geschwister-Komponente empfangen mit:

EventBus.$on('generatedSum', (sum) => { 
     this.correct = sum; 
    }); 

und ich bin Puting sowohl im Lebenszyklus Haken:

created(){} 

Das Problem ist, dass, nachdem der Code nach einer gespeicherten Änderung kompiliert wurde, ich die Eigenschaft an die Geschwisterkomponente gesendet habe, aber wenn ich die Seite manuell aktualisiere, ist die Eigenschaft in der Geschwisterkomponente nicht sichtbar.

Antwort

3

Ich denke, wenn die Seite aktualisiert die Vue-Komponenten nacheinander montieren. Da beide Geschwister sind, wenn die erste Komponente trigger the event die zweite Komponente nicht verfügbar sein kann, um die triggered event zu hören. Weil die zweite Komponente nach der ersten Komponente montiert ist.

Als eine Arbeit umgehen versuchen mounted() eher als created() Lebenszyklus Ereignis verwenden.

Weitere Informationen zu Lebenszyklus-Ereignissen finden Sie hier. https://vuejs.org/v2/guide/instance.html#Lifecycle-Diagram

+0

Es ist eine Antwort mit Fakten. Ich habe ihm gerade gesagt, dass es vielleicht nicht die exakte Lösung ist. Und jetzt gibt es keine Vermutungen in der Antwort;) – Thusitha

+0

FWIW, ja, das ist wahrscheinlich das Problem. Wenn Sie nicht sicher sind, ist es besser, mit Kommentaren zu klären, bevor Sie antworten. – Bert

+0

@Bert Sicherlich;) – Thusitha

Verwandte Themen