React-window: Das erneute Bereitstellen der Triggerliste für Stammkomponentenaktualisierungen

Erstellt am 18. Sept. 2018  ·  3Kommentare  ·  Quelle: bvaughn/react-window

Ist es erwartetes Verhalten?

preview

https://codesandbox.io/s/521oq1v574

💬 question

Hilfreichster Kommentar

Ich habe die Dokumente aktualisiert, um Inline-Rendering-Funktionen zu entfernen! Hoffentlich wird dies in Zukunft Verwirrung vermeiden. 😅

Alle 3 Kommentare

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:
sandbox1

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:
screen shot 2018-09-18 at 7 36 23 am

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:
screen shot 2018-09-18 at 7 39 11 am
screen shot 2018-09-18 at 7 41 29 am

Lassen Sie uns nun den Profiler verwenden, um diese gegabelte Sandbox zu betrachten, in der ich genau das getan habe:
sandbox-2

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 😄

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen