In Reaction vorausgesetzt, ich habe eine ganzzahlige Variable namens myProperty, die von getDafaultProps zurückgegeben wird, wenn ich console.log (myProperty) vor und nach dem Aufruf von this.setProps (myProperty + 1) in einer Update-Funktion Die Konsole protokolliert den gleichen Wert für myProperty. Die Eigenschaft wird nach dem Ende der Funktion aktualisiert, und das nächste Mal, wenn ich meine Funktion myProperty aufruft, ist der neue Wert, aber weiß jemand warum oder wird mir nicht erklärt, warum myProperty nicht sofort aktualisiert wird, wenn this.setProps aufgerufen wird ?this.setProps nicht automatisch aktualisieren
danke, dass Sie sich die Zeit genommen haben, zu antworten. ein entsprechender Code unter
getDefaultProps: function() {
return { colorIndex: -1 };
},
update: function() {
console.log("clicked and index is " + this.props.colorIndex); //returns -1
this.setProps({colorIndex: this.props.colorIndex + 1});
console.log("index is now " + this.props.colorIndex); /still returns -1
},
Wenn Sie eine Variable mit Wertänderungen haben, sollten Sie 'setState' und' this.state' -Objekt –
verwenden, da ich die Änderung nicht finden konnte, dachte ich. Liegt es daran, dass es sich um eine asynchrone Funktion handelt und ich gerade keine Zeit hatte, es zu aktualisieren, wenn ich die Konsole logge? Nur ein Gedanke. – woodwick
Warum verwenden Sie die veralteten 'setProps' an erster Stelle? Ich glaube nicht einmal, dass es in der aktuellen Reaktion ist. (Bestätigt, in 0.14 entfernt; https://github.com/facebook/react/pull/5570) In jedem Fall würde ich annehmen, dass es wie 'setState' nicht sofort passiert. Siehe auch http://stackoverflow.com/a/25142742/438992. Vor über zwei Jahren. –