Middle
Dlaczego metody cyklu życia nie mogą być definiowane za pomocą funkcji strzałkowych?
sobes.tech AI
Odpowiedź od AI
W komponentach klasowych React nie można definiować metod cyklu życia za pomocą funkcji strzałkowych, ponieważ spowoduje to powiązanie this z bieżącym kontekstem (zazwyczaj globalnym lub undefined w trybie strict), a nie z instancją komponentu. React wywołuje te metody z określonym kontekstem this, który powinien wskazywać na instancję komponentu, aby mieć dostęp do props, state i metod komponentu.
class MyComponent extends React.Component {
// Poprawnie: 'this' będzie instancją komponentu
componentDidMount() {
console.log(this.props);
}
// Niepoprawnie: 'this' nie będzie instancją komponentu podczas wywołania przez React
componentDidUpdate = () => {
// Tutaj 'this' jest powiązane z kontekstem, w którym zdefiniowano funkcję strzałkową,
// co najprawdopodobniej nie jest instancją komponentu podczas wywołania przez React.
console.log(this.state);
}
}