Zusammenfassung
In dieser Lektion hast du gelernt:
- Ein kontrolliertes Feld zeigt an, was im State steht,
value={name}, und seinonChangeändert den State:onChange={(event) => setName(event.target.value)}. Die Seite kann also zeigen, was getippt wird, während es getippt wird, undsetName("")leert das Feld. - Ein Feld mit
valuebrauchtonChange. Ohne es hält React das Feld so, wie der State es sagt, sodass man nichts hineintippen kann, und warnt in der Konsole. - Eine
textareabekommtvaluewie eininput. Dervalueeinesselectist dervalueseiner gewählten Option, und der State wählt sie. - Ein Kontrollkästchen wird mit
checkedkontrolliert, und sein neuer State istevent.target.checked,trueoderfalse. - Der Wert eines Feldes ist Text, auch bei
type="number". Behalte den Text im State und verwendeNumber(), wo du rechnest. Ein leeres Feld ist dort0. <form onSubmit={absenden}>führt den Handler aus, wenn das Formular abgesendet wird, mit seinem Button oder der Eingabetaste. Rufe zuerstevent.preventDefault()auf, sonst lädt die Seite neu, und der ganze State ist weg.- Hinzufügen über ein Formular: eine Updater-Funktion, die ein neues Array mit dem neuen Eintrag zurückgibt,
setEintraege((eintraege) => [...eintraege, { id: Date.now(), text: text }]), und danach das Feld leeren. - Der Handler prüft, was getippt wurde: eine Fehlermeldung im State, gesetzt vor einem frühen
return.disabled={text.trim() === ""}verhindert, dass ein Button benutzt wird, solange seine Bedingung wahr ist.
In der nächsten Lektion, Checkpoint: Quizspiel, setzt du State, Ereignisse und Bedingungen in einem eigenen Spiel ein: eine Frage, Antwort-Buttons, eine Punktzahl und ein Endbildschirm.
Vorher aber noch eine kleine Übung: ein Bestellformular für das Festival-T-Shirt. App.jsx enthält das Formular, aber noch keinen State.
So schreibst du es:
"Shift + 2
{Alt Gr + 7
}Alt Gr + 0
[Alt Gr + 8
]Alt Gr + 9
<<
>Shift + <
/Shift + 7
|Alt Gr + <
&Shift + 6
`Shift + ´, Leertaste
$Shift + 4
Anweisungen
- 1
Mach beide Felder kontrolliert, die Größe mit dem Startwert
"M"und die Anzahl mit"1", und zeige die Summe insummean, bei 20 € pro T-Shirt:Summe: 60 €für 3. - 2
Wird das Formular abgesendet, füge die Bestellung ans Ende der Liste
bestellungenan, zum BeispielGröße L, Anzahl 2, und setze die Anzahl zurück auf"1".