0Pricing
React Academy · Pelajaran

Utilitas React.Children

Gunakan React.Children.map, count, dan toArray untuk memanipulasi children dengan aman.

Utilitas React.Children adalah pelajaran React Academy gratis di CoddyKit. Ini adalah pelajaran 2 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 utilitas React.Children — map, count, toArray, dan forEach — untuk melakukan iterasi dan transformasi anak dengan aman, berapa pun jumlah yang diteruskan.

Masalah dengan Metode Array Langsung

Karena `props.children` dapat berupa satu elemen, array, atau undefined, memanggil `.map()` langsung pada nilai tersebut akan menyebabkan galat. Utilitas React.Children menangani semua kasus ini dengan aman.
// Unsafe — crashes if children is a single element
children.map(c => ...);

// Safe
React.Children.map(children, c => ...);

React.Children.map

Cara kerjanya seperti `Array.prototype.map`, tetapi menangani satu anak, beberapa anak, dan null/undefined dengan aman. Metode ini mengembalikan array elemen yang dikloning (atau apa pun yang dikembalikan callback).
function List({ children }) {
  return (
    <ul>
      {React.Children.map(children, (child, i) => (
        <li key={i}>{child}</li>
      ))}
    </ul>
  );
}

React.Children.count

`React.Children.count(children)` mengembalikan jumlah anak, dengan menghitung elemen tunggal sebagai 1 dan null/undefined sebagai 0 dengan benar.
function RequiresTwo({ children }) {
  if (React.Children.count(children) !== 2) {
    throw new Error('Exactly two children required');
  }
  return <div>{children}</div>;
}

React.Children.toArray

Metode ini mengonversi anak menjadi array datar dengan kunci yang stabil. Dengan begitu, Anda dapat mengurutkan, memfilter, atau mengiris anak menggunakan metode array biasa tanpa mengkhawatirkan penyarangan.
function Reversed({ children }) {
  const arr = React.Children.toArray(children);
  return <>{arr.reverse()}</>;
}

React.Children.forEach

Seperti `.map()`, tetapi tidak mengembalikan nilai. Gunakan metode ini saat Anda ingin melakukan iterasi pada anak untuk efek samping, seperti memvalidasi tipenya atau membangun pencarian.
React.Children.forEach(children, child => {
  if (!React.isValidElement(child)) {
    console.warn('Non-element child found');
  }
});

React.Children.only

`React.Children.only(children)` memastikan bahwa terdapat tepat satu elemen anak dan mengembalikannya. Metode ini menimbulkan galat jika tidak ada anak atau terdapat lebih dari satu anak. Berguna untuk menerapkan API dengan satu anak.
function SingleChild({ children }) {
  const child = React.Children.only(children);
  return React.cloneElement(child, { 'data-wrapped': true });
}

Memvalidasi Tipe Anak

Gabungkan `React.Children.forEach` dan `React.isValidElement` dengan tipe anak untuk memastikan bahwa hanya tipe komponen tertentu yang diteruskan sebagai anak.
React.Children.forEach(children, child => {
  if (child.type !== TabPanel) {
    throw new Error('Only TabPanel children allowed');
  }
});

React.Children vs Array.from

Dalam React 18+, anak dapat berupa pohon elemen React yang bukan array biasa. Selalu pilih React.Children daripada Array.from untuk menghindari kasus khusus pada elemen tunggal dan Fragmen.

Alternatif Modern: Meratakan dengan toArray

Jika Anda perlu melakukan transformasi yang kompleks, panggil `React.Children.toArray(children)` terlebih dahulu untuk mendapatkan array datar dengan kunci, lalu terapkan metode array biasa padanya.
const items = React.Children.toArray(children);
const first = items[0];
const rest = items.slice(1);

Pemeriksaan Singkat

Metode React.Children mana yang menangani elemen tunggal, array, dan anak null/undefined dengan aman — seperti Array.map tetapi lebih tangguh?

Ringkasan

Gunakan React.Children.map untuk iterasi yang aman, count untuk memeriksa jumlah, toArray untuk metode array, forEach untuk iterasi dengan efek samping, dan only untuk memastikan tepat satu anak.

Berikutnya

Pelajaran berikutnya: **Slot Bernama melalui Properti Objek** — Anda akan menerapkan slot kepala, isi, dan kaki dengan meneruskan JSX melalui properti bernama.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Utilitas React.Children” gratis?

Ya — teks lengkap “Utilitas React.Children” 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 “Utilitas React.Children”?

Gunakan React.Children.map, count, dan toArray untuk memanipulasi children dengan aman. 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 2 dari 4.

Berapa lama pelajaran “Utilitas React.Children” 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