Lompat ke konten utama
←

React Dasar

Pelajaran 9 dari 17

Event dan state

Menanggapi event

Setelah pelajaran ini kamu bisa memasang fungsi penangan event pada elemen, meneruskannya lewat props, dan menghentikan perambatan event dengan stopPropagation.

±13 menitDiperiksa 24 Okt 2026

Latihan di pelajaran ini butuh akun gratis. Progres, kode, dan catatanmu hanya tersimpan di browser ini. Masuk untuk menyimpannya

Materi

Penangan event adalah fungsi yang dijalankan React ketika pengguna berinteraksi, misalnya mengeklik tombol. Fungsi itu dikirim sebagai prop onClick: <button onClick={tanganiKlik}>. Konvensi React menamai penangan dengan handle diikuti nama event-nya, seperti handleClick; di kelas ini dipakai padanannya, tangani.

Fungsinya diserahkan, bukan dipanggil. onClick={tanganiKlik} menyerahkan fungsi kepada React untuk dipanggil saat klik terjadi. onClick={tanganiKlik()} memanggilnya saat render, sebelum ada klik, lalu menyerahkan nilai kembaliannya. Bila penangan membutuhkan argumen, bungkus dengan fungsi panah: onClick={() => pesan("Bakso")}.

function TombolMenu({ menu, onPesan }) {
  return <button onClick={() => onPesan(menu)}>{menu}</button>;
}

export default function Menu() {
  function tanganiPesan(menu) {
    console.log("Dipesan: " + menu);
  }
  return <TombolMenu menu="Bakso" onPesan={tanganiPesan} />;
}

Komponen buatan sendiri boleh menerima penangan sebagai props, sehingga induk yang menentukan apa yang terjadi. Nama prop penangan diawali on dan huruf kapital, seperti onPesan atau onHapus.

Event merambat ke atas: klik pada tombol di dalam kartu menjalankan onClick tombol, lalu onClick kartu. Penangan menerima objek event sebagai satu-satunya argumen, yang lazim dinamai e. Memanggil e.stopPropagation() di penangan tombol menghentikan perambatan itu. Semua event merambat di React kecuali onScroll.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke

Tampilkan 1 lagi