Middle
Pourquoi ne peut-on pas définir les méthodes du cycle de vie avec des fonctions fléchées?
sobes.tech IA
Réponse de l'IA
Dans les composants de classe React, il ne faut pas définir les méthodes du cycle de vie à l'aide de fonctions fléchées, car cela entraînera la liaison de this au contexte actuel (généralement global ou undefined en mode strict), et non à l'instance du composant. React appelle ces méthodes avec un contexte this défini, qui doit pointer vers l'instance du composant pour accéder à props, state et aux méthodes du composant.
class MyComponent extends React.Component {
// Correct : 'this' sera l'instance du composant
componentDidMount() {
console.log(this.props);
}
// Incorrect : 'this' ne sera pas l'instance du composant lors de l'appel par React
componentDidUpdate = () => {
// Ici, 'this' est lié au contexte où la fonction fléchée a été définie,
// ce qui n'est probablement pas l'instance du composant lors de l'appel.
console.log(this.state);
}
}