Bab 8: Bekerja dengan Form
Mengelola input, validasi, dan submission dari pengguna.
Konsep: Controlled Components
Di HTML biasa, elemen form seperti <input> dan <textarea> memiliki *state* internal mereka sendiri. Di React, kita menggunakan pendekatan yang disebut controlled components (komponen terkontrol).
Artinya, *state* React menjadi satu-satunya sumber kebenaran (*single source of truth*). Nilai dari setiap input form disimpan dalam *state* komponen, dan setiap perubahan pada input akan memperbarui *state* tersebut melalui fungsi `onChange`.
Langkah-langkah Mengelola Form
1. Buat State untuk Setiap Input
Gunakan `useState` untuk membuat satu *state variable* untuk setiap kolom input di form Anda.
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');2. Hubungkan State ke Input
Gunakan prop value pada elemen input untuk menghubungkannya dengan *state*. Kemudian, gunakan prop onChange untuk memanggil fungsi *setter* dari *state* setiap kali nilainya berubah.
<input
type="email"
value={email} // Nilai input dikontrol oleh state 'email'
onChange={(e) => setEmail(e.target.value)} // Update state saat pengguna mengetik
/>3. Tangani Aksi Pengguna
Untuk menangani aksi submit, kita bisa menambahkan *event handler* onClick pada sebuah tombol. Di dalam fungsi *handler* tersebut, kita bisa memproses data yang sudah tersimpan di dalam *state*.