React · Middle · Pytanie 2 z 75
Jak zresetować stan <EditForm /> przy przejściu do innego użytkownika?
- 1Wyzerować wszystkie pola w
useEffectprzy zmianieuserId - ✓Poprawna odpowiedź: Przekazać
key={userId}- React odtworzy komponent - 3Wywołać
forceUpdate()na komponencie formularza
Wyjaśnienie
Nowy key mówi React, że to inny komponent: stary się odmontowuje razem ze stanem, a nowy montuje. Reset przez efekt działa, ale najpierw renderuje nieaktualne dane, a potem je poprawia - zbędny render i mignięcie. forceUpdate istnieje tylko w klasach i nie resetuje stanu.