Ist es erwartetes Verhalten?
Dies sieht nicht nach einem "Remount" aus - nur nach einem erneuten Rendern der <div>
s. 😄
Verwenden wir den React-Profiler , um einen Blick auf Ihre Sandbox zu werfen:
Der Profiler zeigt uns, dass jedes Mal, wenn die App neu gerendert wird, alle Listenelemente neu gerendert werden. Dies liegt daran, dass die Listenelemente Inline-Funktionskomponenten sind, die bei jedem Rendern Ihrer App neu erstellt werden:
Dies bedeutet, dass React sie bei jedem Rendern als neuen Typ ansieht und sie daher auch erneut rendert.
Versuchen Sie, das Rendern von Listenelementen außerhalb Ihrer Rendermethode App
, wie folgt:
Lassen Sie uns nun den Profiler verwenden, um diese gegabelte Sandbox zu betrachten, in der ich genau das getan habe:
Der Profiler zeigt uns jetzt, dass nur Ihre App
-Komponente neu gerendert wird, wenn Sie forceUpdate()
aufrufen
Hier ist der Quellcode für die gegabelte Sandbox:
https://codesandbox.io/s/n9z6lr0m2m
Vielleicht sollte ich die Dokumente aktualisieren, um zu vermeiden, dass Inline-Rendermethoden angezeigt werden. Ich habe versucht, die Dokumente kurz zu halten, damit sie leicht gelesen werden können, aber ich kann sehen, wie irreführend sie derzeit sein können.
Ich habe die Dokumente aktualisiert, um Inline-Rendering-Funktionen zu entfernen! Hoffentlich wird dies in Zukunft Verwirrung vermeiden. 😅
Danke für die Erklärung. Ich weiß das wirklich zu schätzen 😄
Hilfreichster Kommentar
Ich habe die Dokumente aktualisiert, um Inline-Rendering-Funktionen zu entfernen! Hoffentlich wird dies in Zukunft Verwirrung vermeiden. 😅