Shrnutí
V této lekci jste se naučili, že:
- Řízené textové pole ukazuje, co je ve stavu,
value={jmeno}, a jehoonChangestav mění:onChange={(event) => setJmeno(event.target.value)}. Stránka tak může ukazovat, co uživatel píše, už během psaní, asetJmeno("")textové pole vyprázdní. - Prvek formuláře s
valuepotřebujeonChange. Bez něj ho React drží tak, jak říká stav, takže do něj nejde psát, a React na to upozorní v konzoli. textareadostanevaluestejně jakoinput.valueprvkuselectjevaluejeho vybrané možnosti a vybírá ji stav.- Zaškrtávací políčko se řídí atributem
checkeda jeho nový stav jeevent.target.checked,true, nebofalse. - Hodnota textového pole je text, i s
type="number". Ve stavu mějte text a tam, kde počítáte, použijteNumber(). Prázdné textové pole je tam0. <form onSubmit={rezervuj}>spustí obsluhu, když se formulář odešle, tlačítkem nebo Enterem. Jako první zavolejteevent.preventDefault(), jinak se stránka načte znovu a všechen stav zmizí.- Přidání z formuláře: aktualizační funkce vytvoří nové pole s novou položkou,
setVeci((veci) => [...veci, { id: Date.now(), text: text }]), a pak se textové pole vyprázdní. - Obsluha zkontroluje, co uživatel napsal, a když něco nesedí, nastaví chybovou zprávu ve stavu a skončí předčasným návratem (
return).disabled={text.trim() === ""}vypne tlačítko, dokud podmínka platí.
V další lekci, Miniprojekt: Kvízová hra, využijete stav, události a podmínky ve vlastní hře: otázka, tlačítka s odpověďmi, skóre a obrazovka na konci.
Nejdřív si ale vše procvičte na objednávce festivalového trička. App.jsx už má formulář, jen zatím žádný stav.
Jak psát:
"Shift + ů
{Alt Gr + b
}Alt Gr + n
[Alt Gr + f
]Alt Gr + g
<Alt Gr + ,
>Alt Gr + .
/Shift + ú
|Alt Gr + w
&Alt Gr + c
`Alt Gr + ý
$Alt Gr + ů
Pokyny
Řiďte oba prvky formuláře stavem, velikost začne na "M" a počet na "1", a v odstavci s třídou celkem ukažte celkovou cenu, 450 Kč za tričko: Celkem: 1350 Kč za 3.
Když se formulář odešle, přidejte objednávku na konec seznamu objednavky, například Velikost L, počet 2, a počet vraťte na "1".