Sobes.tech
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);
  }
}