React-Array-Änderungen werden nicht aktualisiert, da Array-Zuweisungen in js als Referenz übergeben werden. Die Lösung ist: 1. Öffnen Sie die entsprechende React-Datei. 2. Verwenden Sie den Spread-Operator, um ein neues Array zu erstellen und die Speicherreferenz zu ändern Verwenden Sie „panes.push({key: panes.length,tab: `${panes.length + 1}`})“, um den Wert neu zuzuweisen.
Die Betriebsumgebung dieses Tutorials: Windows 10-System, Reaktionsversion 18.0.0, Dell G3-Computer.
Was soll ich tun, wenn sich das React-Array ändert, aber nicht aktualisiert wird?
Wenn sich das Attribut eines Elements eines Zustandsarrays in React ändert, wird die SetState-Seite nicht aktualisiert
Während des Codeschreibvorgangs werden Sie feststellen, dass es logisch ist, wenn Sie Push und andere Methoden direkt verwenden, um den Zustand zu ändern Wenn Sie also drücken, ändert sich das ursprüngliche Array. Es sollte aktualisiert werden, der gerenderte Status ändert sich jedoch nicht.
Das Problem, auf das ich heute gestoßen bin, ist: Nach dem Ändern der Array-Elemente in der Komponente ändern sich die Daten, aber die Seite wird nicht neu gerendert
Es wird gesagt, dass dies daran liegt, dass die Komponente die Änderungen im Array nicht erkennen kann Seite wird nicht neu gerendert
Lassen Sie also einfach die Komponente Wenn Sie spüren, dass Sie sich geändert haben, können Sie den Aktualisierungseffekt erzielen
Grund:
Dies liegt daran, dass in js die Zuweisung des Arrays als Referenz übergeben wird .array.push entspricht dem direkten Ändern des Speicherblocks, der dem Array entspricht, aber der Speicher des für den Vergleich verwendeten Arrays in React hat sich nicht geändert und zeigt nur auf denselben Speicher, sodass ein erneutes Rendern nicht möglich ist ausgelöst.
Sie können den Spread-Operator verwenden, um ein neues Array zu erstellen und die Speicherreferenz zu ändern
Das obige ist der detaillierte Inhalt vonWas tun, wenn Änderungen am React-Array nicht aktualisiert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!