React 5 3 Comprendre les clés
Si vous ouvrez les outils de développement du navigateur (F12) et que vous regardez l'onglet Console, vous remarquez probablement un avertissement (warning) jaune signalant que chaque enfant dans une liste devrait avoir une prop key unique. Ce cours explique comment supprimer ce warning.
Pourquoi React demande une key ?
Quand React affiche une liste de composants générée par map(), il a besoin d'identifier de manière unique chaque élément pour optimiser les ré-rendus. Sans key, React doit comparer toute la liste à chaque changement, ce qui peut introduire des bugs subtils (par exemple, l'état d'un composant qui « migre » vers un autre quand l'ordre change).
Pour corriger l'avertissement, ouvrez le fichier Expenses.js (ou ExpensesList.js selon votre structure) et ajoutez la prop key sur le composant <ExpenseItem /> rendu dans le map() :
{props.items.map((expense) => (
<ExpenseItem
key={expense.id}
title={expense.title}
amount={expense.amount}
date={expense.date}
/>
))}
On utilise expense.id comme valeur de la key — un identifiant unique propre à chaque dépense. Cet identifiant a été défini dans le composant App.js avec les dépenses factices (e1, e2, e3, e4) et est aussi généré pour chaque nouvelle dépense ajoutée via Math.random().toString().
Une fois ce changement appliqué, retournez sur votre page web et rechargez : le warning key dans la console a disparu. C'est aussi simple que ça, mais c'est une bonne pratique essentielle qui évitera des bugs plus difficiles à diagnostiquer dans des applications complexes.
En résumé
Cette leçon React 5.3 explique comment éliminer le warning de clé manquante qui s'affiche dans la console du navigateur (F12). En ajoutant simplement une propriété `key` à chaque élément d'une liste avec un identifiant unique (par exemple `expense.id`), vous éliminez immédiatement le message d'erreur et optimisez la réconciliation de React lors des mises à jour de liste.
Points clés
- Les clés manquantes génèrent un warning visible dans la console (F12) lors du rendu d'une liste
- Ajouter `key={expense.id}` (ou tout identifiant unique) directement dans le composant (dépense.js) résout le problème
- L'identifiant doit être unique pour chaque élément, comme l'ID présent dans vos données d'objet
- Une fois la clé ajoutée, le warning disparaît immédiatement sans autre modification requise
- Les clés permettent à React de mieux réconcilier et mettre à jour les éléments de liste de façon optimale
Questions fréquentes
Comment identifier qu'une clé manque dans ma liste React?
Ouvrez la console du navigateur avec F12. Vous verrez un warning clairement affiché indiquant qu'une clé manque. C'est la première étape pour diagnostiquer et corriger le problème.
Quelle valeur utiliser pour la propriété key?
Utilisez un identifiant unique de votre objet, comme `expense.id` ou tout autre champ d'ID présent dans vos données. Cette valeur doit être la même pour chaque rendu du même élément.
Le warning disparaît-il immédiatement après avoir ajouté la clé?
Oui. Dès que vous ajoutez la propriété key au composant (par exemple dans dépense.js), le warning disparaît immédiatement lors du prochain rendu de la page.