Middle
Waarom kunnen levenscyclusmethoden niet worden gedefinieerd met pijlfuncties?
sobes.tech AI
Antwoord van AI
In React-klasse componenten mogen lifecycle-methoden niet worden gedefinieerd met behulp van pijlfuncties, omdat dit ertoe leidt dat this wordt gebonden aan de huidige context (meestal globaal of undefined in strict-modus), en niet aan de instantie van het component. React roept deze methoden aan met een bepaalde this-context die naar de instantie van het component moet wijzen om toegang te krijgen tot props, state en de methoden van het component.
class MyComponent extends React.Component {
// Correct: 'this' zal de instantie van het component zijn
componentDidMount() {
console.log(this.props);
}
// Fout: 'this' zal niet de instantie van het component zijn bij het aanroepen door React
componentDidUpdate = () => {
// Hier is 'this' gebonden aan de context waarin de pijlfunctie is gedefinieerd,
// wat waarschijnlijk niet de instantie van het component is bij het aanroepen door React.
console.log(this.state);
}
}