Retour à la leçonMission
Mission : dépolluer un composant qui modifie ses props
Diagnostiquer un bug causé par la mutation directe d'une prop et repérer un prop-drilling à corriger.
Contexte
Un développeur junior a écrit ce composant qui, après un clic sur "Appliquer la remise", n'affiche jamais le nouveau prix à l'écran malgré l'absence d'erreur dans la console :
jsx
function CarteProduit({ prix }) {
function appliquerRemise() {
prix = prix * 0.9; // aucune erreur visible, mais l'affichage ne bouge jamais
}
return (
<div>
<p>{prix}€</p>
<button onClick={appliquerRemise}>Appliquer la remise</button>
</div>
);
}Ce même fichier fait aussi transiter une prop theme à travers trois composants intermédiaires (Layout, Sidebar, Menu) qui ne l'utilisent jamais eux-mêmes, juste pour l'atteindre plus bas.