Zarządzanie stanem · Junior · Pytanie 2 z 75
Dlaczego licznik na ekranie się nie zmienia?
function Counter() {
let count = 0;
return <button onClick={() => count++}>{count}</button>;
}- ✓Poprawna odpowiedź: Zmienna lokalna nie przetrwa między renderami, a jej zmiana nie wywołuje renderu
- 2Handlery
onClicknie mogą zmieniać zmiennych zadeklarowanych w komponencie - 3Przycisk potrzebuje
type="button", aby kliknięcie zaktualizowało tekst
Wyjaśnienie
count przy każdym renderze znów wynosi 0, a jej zwiększenie nie prosi Reacta o ponowne narysowanie komponentu. Potrzeba const [count, setCount] = useState(0) i setCount(count + 1).