Grundsätzlich möchte ich meine Seite reaktiv machen und Ergebnisse basierend auf Benutzereingaben/-auswahl geben.Wie kann ich diesen Teil meines Codes reaktiv machen? (Meteor + React)
Ich gehe Benutzer-Auswahl von Eltern auf das Kind Komponente über Requisiten (Wörterbuch ein Objekt mit Benutzer-Auswahl und Menge an Möglichkeiten pro Schlüssel (ex: dictionary = {Gallileo: 2, Juno: 1, Mars: 1}
):
<Childcomp aggregate={this.props.dictionary}/>
Auf der Kind-Komponente, das tue ich ein einfache Schleife und die Auswahl und die Anzahl der Stimmen, in eine Zustandsvariable über componentWillMount()
Methode:.
componentWillMount(){
let obj = this.props.aggregate // {Gallileo: 2, Juno: 1, Mars: 1}
let choice;
for(let key in obj){
if(key === this.props.option){
choice = obj[key];
break;
}
};
let total = 0;
for(let key in obj){
total += obj[key];
}
this.setState({choice: choice, total: total});
};
das Problem I mit diesem haben, ist, dass die Zustandsvariable, wenn nicht den Wert ändern Eingabe empfangen wird this.props.aggregate
ändert sich reaktiv, aber alles danach reagiert nicht.
Ich versuchte mit Sitzungsvariablen, um es reaktiv zu machen, ich habe versucht, den Code in Tracker.autorun()
zu setzen, aber ich habe kein Glück.
Die for-Schleife auf dem Objekt wird überhaupt nicht ausgelöst, was erklärt, warum die Statusvariable nie aktualisiert wird, obwohl die prop.apgs.aggregate-Prop-Datei nahtlos aktualisiert wird.
Sie sind der Mann! Gerade als ich dachte, ich wüsste React, lerne ich neue Dinge. Danke vielmals. –