useState poskytuje komponentě funkce kus lokálního, reaktivního stavu. Vrací dvojici: aktuální hodnotu a funkci setter. Volání setter naplánuje opětovné vykreslení s novou hodnotou.
[count, setCount] = ();
(count + );
( c + );
useState poskytuje komponentě funkce kus lokálního, reaktivního stavu. Vrací dvojici: aktuální hodnotu a funkci setter. Volání setter naplánuje opětovné vykreslení s novou hodnotou.
[count, setCount] = ();
(count + );
( c + );
1. Aktualizace jsou asynchronní / dávkované. count se nezmění na řádku po setCount; má novou hodnotu při dalším vykreslení. Takže se toto zvýší pouze jednou:
setCount(count + 1);
setCount(count + 1); // both read the SAME stale `count` → +1 total
Použivejte funkční updater, když příští hodnota závisí na předchozí, protože React předává nejnovější hodnotu:
setCount(c => c + 1);
setCount(c => c + 1); // +2 total — each gets the up-to-date value
2. Počáteční hodnota se používá pouze při prvním vykreslení. Pro nákladné výchozí nastavení, předejte funkci, aby se spustila jednou (lazy init):
const [data] = useState(() => expensiveInit()); // runs once, not every render
Stav je to, co dělá komponentu interaktivní — React znovu spustí funkci a znovu vykreslí UI kdykoliv se stav změní.
Zachází se stavem jako s neměnným: vytvořte nové pole/objekt místo mutace, např. setItems([...items, x]), jinak React nemusí detekovat změnu.