0Pricing
React Academy · Leçon

Utilitaires React.Children

Utiliser React.Children.map, count et toArray pour manipuler les enfants en toute sécurité.

Utilitaires React.Children est une leçon React Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage React Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours React Academy comprend 4 leçons au total.

Bienvenue

Dans cette leçon, vous utiliserez les utilitaires React.Children — map, count, toArray et forEach — pour parcourir et transformer les enfants en toute sécurité, quel que soit leur nombre.

Le problème des méthodes de tableau directes

Comme `props.children` peut être un élément unique, un tableau ou être undefined, l'appeler directement avec `.map()` provoquera une erreur. Les utilitaires React.Children gèrent tous ces cas en toute sécurité.
// Unsafe — crashes if children is a single element
children.map(c => ...);

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

React.Children.map

Fonctionne comme `Array.prototype.map`, mais gère en toute sécurité un enfant unique, plusieurs enfants ainsi que null/undefined. Renvoie un tableau d'éléments clonés (ou le résultat renvoyé par la fonction de rappel).
function List({ children }) {
  return (
    <ul>
      {React.Children.map(children, (child, i) => (
        <li key={i}>{child}</li>
      ))}
    </ul>
  );
}

React.Children.count

`React.Children.count(children)` renvoie le nombre d'enfants, en comptant correctement les éléments uniques comme 1 et null/undefined comme 0.
function RequiresTwo({ children }) {
  if (React.Children.count(children) !== 2) {
    throw new Error('Exactly two children required');
  }
  return <div>{children}</div>;
}

React.Children.toArray

Convertit les enfants en un tableau plat avec des clés stables. Vous pouvez ainsi trier, filtrer ou découper les enfants à l'aide des méthodes de tableau classiques, sans vous soucier de l'imbrication.
function Reversed({ children }) {
  const arr = React.Children.toArray(children);
  return <>{arr.reverse()}</>;
}

React.Children.forEach

Comme `.map()`, mais ne renvoie aucune valeur. Utilisez-le lorsque vous voulez parcourir les enfants pour produire des effets de bord, par exemple pour valider leurs types ou créer une table de recherche.
React.Children.forEach(children, child => {
  if (!React.isValidElement(child)) {
    console.warn('Non-element child found');
  }
});

React.Children.only

`React.Children.only(children)` vérifie qu'il existe exactement un élément enfant et le renvoie. La fonction génère une erreur s'il n'y a aucun enfant ou s'il y en a plusieurs. C'est utile pour imposer des API n'acceptant qu'un seul enfant.
function SingleChild({ children }) {
  const child = React.Children.only(children);
  return React.cloneElement(child, { 'data-wrapped': true });
}

Valider les types des enfants

Combinez `React.Children.forEach` et `React.isValidElement` avec le type de l'enfant pour imposer que seuls certains types de composants soient transmis comme enfants.
React.Children.forEach(children, child => {
  if (child.type !== TabPanel) {
    throw new Error('Only TabPanel children allowed');
  }
});

React.Children et Array.from

Dans React 18 et les versions ultérieures, les enfants peuvent former un arbre d'éléments React qui n'est pas un simple tableau. Préférez toujours React.Children à Array.from pour éviter les cas particuliers liés aux éléments uniques et aux fragments.

Alternative moderne : aplatir avec toArray

Si vous devez effectuer des transformations complexes, appelez d'abord `React.Children.toArray(children)` pour obtenir un tableau plat avec des clés, puis appliquez-y les méthodes de tableau classiques.
const items = React.Children.toArray(children);
const first = items[0];
const rest = items.slice(1);

Question rapide

Quelle méthode React.Children gère en toute sécurité un élément unique, un tableau et des enfants null/undefined — comme Array.map, mais de manière robuste ?

Récapitulatif

Utilisez React.Children.map pour parcourir les enfants en toute sécurité, count pour vérifier leur nombre, toArray pour appliquer des méthodes de tableau, forEach pour parcourir les enfants en produisant des effets de bord, et only pour imposer la présence d'un seul enfant.

À suivre

Prochaine leçon : **Emplacements nommés avec des propriétés objet** — vous implémenterez des emplacements pour l'en-tête, le corps et le pied de page en transmettant du JSX par l'intermédiaire de propriétés nommées.

Questions Fréquemment Posées

La leçon « Utilitaires React.Children » est-elle gratuite ?

Oui — le texte complet de « Utilitaires React.Children » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours React Academy, passe à CoddyKit PRO. Le cours React Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Utilitaires React.Children » ?

Utiliser React.Children.map, count et toArray pour manipuler les enfants en toute sécurité. Tu pratiques React Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer React Academy ?

Aucune expérience préalable n'est requise. React Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Utilitaires React.Children » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon React Academy ?

Oui. Chaque leçon React Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Principes fondamentaux de props.children
  2. Utilitaires React.Children
  3. Emplacements nommés via les props d’objet
  4. Cloner et injecter des props avec cloneElement
← Retour à React Academy