React · Middle · Pytanie 65 z 75
Dlaczego lista pól kontrolowanych może tracić fokus przy każdym naciśnięciu klawisza?
{fields.map((f) => <input key={Math.random()} value={f.value} onChange={...} />)}- ✓Poprawna odpowiedź: Nowy losowy
keyprzy każdym renderze sprawia, że React montuje każde pole od nowa - 2Pola kontrolowane zawsze tracą fokus
- 3
onChangezdejmuje fokus z pola
Wyjaśnienie
Klucze muszą być stabilne. Zmieniający się klucz niszczy stary węzeł DOM (wraz z fokusem i stanem) i tworzy nowy.