Middle
Perché i metodi del ciclo di vita non possono essere definiti con funzioni freccia?
sobes.tech AI
Risposta dell'AI
Nei componenti di classe React, i metodi del ciclo di vita non devono essere definiti usando funzioni freccia, perché ciò porterà al binding di this al contesto corrente (di solito globale o undefined in modalità strict), e non all'istanza del componente. React chiama questi metodi con un contesto this definito, che dovrebbe puntare all'istanza del componente per accedere a props, state e ai metodi del componente.
class MyComponent extends React.Component {
// Corretta: 'this' sarà l'istanza del componente
componentDidMount() {
console.log(this.props);
}
// Errata: 'this' non sarà l'istanza del componente quando chiamato da React
componentDidUpdate = () => {
// Qui, 'this' è legato al contesto in cui è stata definita la funzione freccia,
// che probabilmente non è l'istanza del componente al momento della chiamata.
console.log(this.state);
}
}