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!
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
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.
Tags und Links javascript reactjs render refs