Middle
Warum können Lebenszyklusmethoden nicht mit Pfeilfunktionen definiert werden?
sobes.tech KI
Antwort von AI
In React-Klassenkomponenten sollten Lifecycle-Methoden nicht mit Pfeilfunktionen definiert werden, da dies dazu führt, dass this an den aktuellen Kontext gebunden wird (meist global oder undefined im Strict-Modus), und nicht an die Instanz der Komponente. React ruft diese Methoden mit einem bestimmten this-Kontext auf, der auf die Instanz der Komponente zeigen sollte, um Zugriff auf props, state und die Methoden der Komponente zu haben.
class MyComponent extends React.Component {
// Richtig: 'this' ist die Instanz der Komponente
componentDidMount() {
console.log(this.props);
}
// Falsch: 'this' ist bei Aufruf durch React nicht die Instanz der Komponente
componentDidUpdate = () => {
// Hier ist 'this' an den Kontext gebunden, in dem die Pfeilfunktion definiert wurde,
// was wahrscheinlich nicht die Instanz der Komponente bei React-Aufruf ist.
console.log(this.state);
}
}