React refs aktualisiert nicht zwischen render

9

Also ich habe diese Komponente

%Vor%

Wenn die Linienelemente zum ersten Mal gerendert werden, funktionieren die Refs wie erwartet. Aber wenn ich ein lineitem diesem this.props.shoot hinzufüge, ändert sich das refs-Objekt dieser Komponente nicht.

Also zum Beispiel sagen, ich hatte ein Array von 3 Zeilenelementen

%Vor%

this.refs wäre

%Vor%

und wenn ich mein lineitem-Array aktualisiere,

zu sein %Vor%

this.refs ändert sich nicht, es wird immer noch

sein %Vor%

Warum aktualisiert das Objekt refs nicht zwischen den Rendervorgängen? Die LineItemRow-Komponenten werden ordnungsgemäß aktualisiert, sodass ich weiß, dass an dieser Front etwas nicht in Ordnung ist. Alle Einsichten würden sehr geschätzt werden!

Charles Haro 31.03.2015, 06:07
quelle

2 Antworten

4

Unter dem Abschnitt "Vorsicht" in der reaktiven Dokumentation über Referenzen Ссылка

  

"Greifen Sie niemals auf Refs innerhalb der Rendermethode einer Komponente zu - oder while   Die Rendermethode einer Komponente wird sogar irgendwo im Aufruf ausgeführt   Stapel. "

Was genau du tust.

Stattdessen sollten Sie den Status über die Komponente in this.state oder die Eigenschaften der Komponente in this.props

speichern     
jeff_kile 12.10.2015 20:47
quelle
0

Entfernen Sie alle Referenzen und Iterationen, um die Daten zu lesen.

Der Onchange-Handler, den Sie bis zur LineItem-Komponente übergeben, sollte aufgerufen werden und nur die Daten übergeben, die sich ändern. (Die einzelnen LineItem-Daten)

Dies wird dann an der Komponente mit der Statusbehandlung (DocumentContent) behandelt.

Erstellen Sie eine Aktion ShootActions.updateLineItem (), die die relevante Werbebuchung im Geschäft aktualisiert, die dann die Änderung ausgibt und alles erneut rendert.

    
dannyshaw 15.04.2015 05:49
quelle

Tags und Links