0Pricing
React Academy · Leçon

Déboguer les erreurs React courantes

Diagnostiquer les avertissements liés aux clés manquantes, les bugs d’état indéfini et les erreurs d’hydratation.

Déboguer les erreurs React courantes est une leçon React Academy gratuite sur CoddyKit. Ceci est la leçon 4 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 diagnostiquerez les erreurs React les plus courantes : les avertissements liés aux clés manquantes, les erreurs d'état non défini, les rendus trop nombreux et les incohérences d'hydratation.

Avertissement concernant une clé manquante

React journalise : *Chaque enfant d'une liste doit avoir une propriété « clé » unique.* Cela se produit lorsque vous rendez un tableau sans ajouter de propriété `key`. Corrigez le problème en ajoutant une clé stable et unique à chaque élément de la liste.
// Bad
items.map(item => <li>{item.name}</li>)

// Good
items.map(item => <li key={item.id}>{item.name}</li>)

Impossible de lire les propriétés de undefined

Cette interruption signifie souvent que votre état vaut `undefined` lors du premier rendu. Initialisez toujours l'état avec une valeur par défaut sûre (`[]` pour les tableaux, `{}` pour les objets, `null` pour les valeurs que vous vérifiez avant de les utiliser).
// Bad — crashes if data is undefined
const [data, setData] = useState();
return <p>{data.name}</p>;

// Good
const [data, setData] = useState(null);
return data ? <p>{data.name}</p> : <p>Loading...</p>;

Erreur : trop de nouveaux rendus

React lève l'erreur *Trop de nouveaux rendus* lorsqu'un composant entre dans une boucle de rendu infinie — généralement parce que vous appelez `setState` sans condition pendant le rendu, ou parce que vous transmettez directement comme propriété une fonction en ligne `() => setState(...)` qui se déclenche à chaque rendu.
// Bad — setState called on every render
function Counter() {
  const [n, setN] = useState(0);
  setN(n + 1); // infinite loop!
  return <p>{n}</p>;
}

Corriger les rendus trop nombreux

Déplacez les mises à jour de l'état dans des gestionnaires d'événements ou dans useEffect. N'appelez jamais setState directement au niveau supérieur du corps d'un composant.
// Good — update only on click
function Counter() {
  const [n, setN] = useState(0);
  return <button onClick={() => setN(n + 1)}>{n}</button>;
}

Avertissement d'incohérence d'hydratation

Dans les applications SSR, React affiche l'avertissement *L'hydratation a échoué, car l'interface utilisateur initiale ne correspond pas à celle rendue sur le serveur.* Les causes courantes sont l'utilisation de `Date.now()` ou de `Math.random()` lors du rendu, ainsi que l'injection de HTML par des extensions du navigateur.

Corriger les incohérences d'hydratation

Déplacez les valeurs dynamiques (horodatages, ID aléatoires) dans un `useState` initialisé à l'intérieur de `useEffect`, afin que le serveur rende toujours une valeur statique et que le client la mette à jour après le montage.
const [ts, setTs] = useState('');
useEffect(() => {
  setTs(Date.now().toString());
}, []);
return <p>{ts}</p>;

L'état ne se met pas à jour immédiatement

N'oubliez pas que `setState` est asynchrone. Journaliser l'état juste après l'avoir appelé affiche l'ancienne valeur. Pour voir la valeur mise à jour, journalisez-la dans un `useEffect` dont la variable d'état est une dépendance.
const [count, setCount] = useState(0);

function handleClick() {
  setCount(count + 1);
  console.log(count); // still old value!
}

useEffect(() => {
  console.log('updated:', count); // correct
}, [count]);

Le composant ne se met pas à jour lorsque la propriété change

Si un composant ne se met pas à jour lorsqu'une propriété change, vérifiez que vous ne modifiez pas un objet ou un tableau directement. React utilise l'égalité des références : modifier un objet existant ne déclenche pas de nouveau rendu.
// Bad — same reference, no re-render
const list = [];
list.push('item');
setList(list);

// Good — new array reference
setList([...list, 'item']);

Lire les erreurs dans la superposition d'erreur

Lorsqu'une application React plante en développement, une superposition d'erreur apparaît dans le navigateur. Lisez la **pile des composants** en bas : elle affiche chaque composant qui a rendu le composant défaillant, ce qui permet de comprendre clairement l'origine du problème.

Vérification rapide

Quelle est la cause la plus courante de l'erreur React « Trop de nouveaux rendus » ?

Récapitulatif

Vous pouvez maintenant corriger les erreurs React les plus courantes : ajouter des clés stables aux listes, initialiser l'état de manière sûre, éviter setState lors du rendu, gérer les incohérences d'hydratation et lire la pile des composants dans la superposition d'erreur.

Cours terminé

Félicitations ! Vous avez terminé **DevTools React et débogage**. Vous pouvez maintenant installer DevTools, inspecter les arborescences de composants et l'état, profiler les rendus et diagnostiquer les erreurs d'exécution React les plus fréquentes.

Questions Fréquemment Posées

La leçon « Déboguer les erreurs React courantes » est-elle gratuite ?

Oui — le texte complet de « Déboguer les erreurs React courantes » 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 « Déboguer les erreurs React courantes » ?

Diagnostiquer les avertissements liés aux clés manquantes, les bugs d’état indéfini et les erreurs d’hydratation. 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 4 sur 4.

Combien de temps prend la leçon « Déboguer les erreurs React courantes » ?

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. Installer et ouvrir React DevTools
  2. Inspecter les arborescences de composants et les props
  3. Utiliser l’onglet Profiler
  4. Déboguer les erreurs React courantes
← Retour à React Academy