2016-09-01 9 views
0

Ich versuche, Daten, die von einer untergeordneten Komponente ausgelöst wird, und übergeben Sie es in eine übergeordnete Komponente, aber bisher konnte ich nur ein Beispiel finden von diesem wird in ein Array geschoben.Vuejs senden Daten von Kind zu Eltern, ohne es in ein Array zu setzen

Im Kind habe ich ein Verfahren wie dieses

methods: { 
    savePost: function() { 
    this.$dispatch('child-data', this.childData) 
    this.childData = '' 
    } 
    } 

und die Eltern aufgebaut wird es greifen und es in einem

Array platzieren
data: { 
childSelect: [], 
} 
events: { 
'child-data' : function (childData) { 
    this.childSelect.push(childData) 
} 

So weiß ich, dass dies nur ist gehen, um die Childs-Daten in ein Array zu schieben, aber ich bin auf der Suche nach einer Möglichkeit, data:{ childSelect: ''} setzen und Daten aus dem Ereignis zu senden ersetzt childSelect jedes Mal, wenn es aktualisiert wird.

Ich habe Beispiele in der Dokumentation gesehen, aber ich bin noch neu dazu, also bin ich mir nicht ganz sicher, wie ich anpassen kann, was ich für dieses Kind -> Elterninteraktion gefunden habe.

Ich hoffe, das macht Sinn -_-!

Antwort

1

Nicht genau, was Sie suchen. Vielleicht so etwas?

events: { 
    'child-data' : function (childData) { 
     this.childSelect = childData; 
    } 
} 
+0

Das war es! Aus irgendeinem Grund habe ich mich davon überzeugt, dass es viel komplizierter war, habe keinen Schritt zurück genommen. Vielen Dank! –

+1

Wenn Sie solche Sachen regelmäßig machen, sollten Sie sich Vuex anschauen. Es macht das Teilen von Daten zwischen Komponenten viel einfacher. – Dan

+0

Verwendung von Vuex zum ersten Mal in diesem Projekt. Bei diesem spezifischen Problem werden die Daten in der untergeordneten Komponente basierend auf einer Radioauswahl geändert und dann an das übergeordnete Element übergeben (der Benutzer wählt eine Option aus, die Optionsauswahldaten werden mit der übergeordneten Komponente geteilt, die es als Text anzeigt). Ich bin mir nicht wirklich sicher, ob es eine Möglichkeit gibt, das ich mit vuex einrichten kann. –

Verwandte Themen