0Pricing
React Academy · Pelajaran

Menggandakan dan Menyisipkan Props dengan cloneElement

Gunakan React.cloneElement untuk meneruskan props tersembunyi dari parent ke komponen child.

Menggandakan dan Menyisipkan Props dengan cloneElement adalah pelajaran React Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar React Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus React Academy mencakup 4 pelajaran total.

Selamat Datang

Dalam pelajaran ini Anda akan menggunakan React.cloneElement untuk mengkloning elemen anak dan menyisipkan properti tambahan dari induk, tanpa mengharuskan anak mengetahuinya.

Apa Itu cloneElement

`React.cloneElement(element, props, ...children)` membuat elemen React baru berdasarkan elemen yang sudah ada, dengan menggabungkan properti baru dan properti asli. Tipe elemen asli tetap dipertahankan.
const clone = React.cloneElement(child, { active: true });

Mengapa Menggunakan cloneElement

Komponen induk dapat menyisipkan perilaku, seperti status aktif atau penanganan peristiwa, ke dalam anak-anaknya tanpa membuat anak mengetahuinya. Cara ini digunakan dalam sistem tab, akordeon, dan grup formulir.

Contoh Bilah Tab

Komponen Tabs dapat mengkloning setiap anak Tab dan secara otomatis menyisipkan properti `isActive` serta `onClick`, sehingga pengguna tidak perlu menghubungkannya secara manual.
function Tabs({ children, activeIndex, onChange }) {
  return (
    <div className="tabs">
      {React.Children.map(children, (child, i) =>
        React.cloneElement(child, {
          isActive: i === activeIndex,
          onClick: () => onChange(i),
        })
      )}
    </div>
  );
}

Aturan Penggabungan Props

cloneElement menggabungkan properti baru **di atas** properti asli. Jika elemen asli sudah memiliki properti dengan kunci yang sama, nilai baru akan digunakan. style dan className ditimpa, bukan digabungkan, kecuali Anda menanganinya secara manual.

Menggabungkan Penangan Peristiwa

Untuk menggabungkan penangan peristiwa alih-alih menimpanya, susun callback secara manual sebelum meneruskannya ke cloneElement.
React.cloneElement(child, {
  onClick: (e) => {
    child.props.onClick?.(e); // original handler
    handleClick(e);           // injected handler
  },
})

Mengganti Anak

Argumen ketiga untuk `cloneElement` menggantikan anak elemen. Teruskan konten baru untuk sepenuhnya menimpa anak asli.
// Replace children with wrapped version
React.cloneElement(child, {}, <strong>{child.props.children}</strong>)

Memeriksa Tipe Elemen Sebelum Mengkloning

Sebelum mengkloning, pastikan anak adalah elemen React yang valid dan, jika perlu, periksa tipenya agar tidak mengkloning anak yang bukan elemen, seperti teks, angka, atau null.
if (React.isValidElement(child)) {
  return React.cloneElement(child, extraProps);
}
return child;

cloneElement vs Context

cloneElement rapuh karena Anda harus mengetahui struktur anak. Context umumnya lebih disukai untuk meneruskan data implisit melalui banyak tingkat. Gunakan cloneElement hanya untuk menyisipkan properti secara langsung dari induk ke anak.

Alternatif Modern: Properti Perenderan dan Hook

Dalam banyak kasus ketika cloneElement dahulu digunakan, hook khusus atau properti perenderan lebih bersih. Pertimbangkan cloneElement jika Anda benar-benar mengendalikan induk dan anak-anak langsungnya.

Pemeriksaan Singkat

Apa yang terjadi pada properti yang ada pada elemen asli dan objek properti yang diteruskan ke React.cloneElement?

Ringkasan

React.cloneElement mengkloning elemen dan menyisipkan properti baru. Gunakan untuk penyisipan properti implisit dari induk ke anak dalam komponen gabungan. Pilih Context atau properti perenderan jika hierarkinya lebih dalam.

Kursus Selesai

Selamat! Anda telah menyelesaikan **React Children API & Pola Slot**. Kini Anda menguasai props.children, utilitas React.Children, properti slot bernama, dan cloneElement untuk membangun komponen tata letak yang fleksibel.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Menggandakan dan Menyisipkan Props dengan cloneElement” gratis?

Ya — teks lengkap “Menggandakan dan Menyisipkan Props dengan cloneElement” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus React Academy, upgrade ke CoddyKit PRO. Kursus React Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Menggandakan dan Menyisipkan Props dengan cloneElement”?

Gunakan React.cloneElement untuk meneruskan props tersembunyi dari parent ke komponen child. Kamu berlatih React Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai React Academy?

Tidak diperlukan pengalaman sebelumnya. React Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Menggandakan dan Menyisipkan Props dengan cloneElement” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran React Academy ini?

Ya. Setiap pelajaran React Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Dasar-Dasar props.children
  2. Utilitas React.Children
  3. Slot Bernama melalui Props Objek
  4. Menggandakan dan Menyisipkan Props dengan cloneElement
← Kembali ke React Academy