React · Middle · Frage 2 von 75
Wie setzt man den Zustand von <EditForm /> zurück, wenn zu einem anderen Nutzer gewechselt wird?
- 1
key={userId}übergeben - React erzeugt die Komponente neu - 2Alle Felder in einem
useEffectzurücksetzen, wenn sichuserIdändert - 3
forceUpdate()auf der Formular-Komponente aufrufen
Antwort zeigen
Richtige Antwort: key={userId} übergeben - React erzeugt die Komponente neu
Erklärung
Ein neuer key sagt React, dass es eine andere Komponente ist: Die alte wird samt Zustand unmountet, eine neue gemountet. Ein Reset per Effekt funktioniert, rendert aber erst veraltete Daten und korrigiert sie dann - ein zusätzliches Rendering und Flackern. forceUpdate gibt es nur bei Klassen, und es setzt den Zustand nicht zurück.