Middle
Miért nem definiálhatók az életciklus-módszerek nyílfüggvényekkel?
sobes.tech MI
Válasz az MI-től
React osztálykomponensekben nem szabad életciklus-metódusokat nyílfüggvényekkel definiálni, mert ez a this kötéséhez vezet a jelenlegi kontextushoz (általában globális vagy undefined szigorú módban), nem pedig a komponens példányához. A React ezeket a módszereket meghatározott this kontextussal hívja meg, amelynek a komponens példányára kell mutatnia, hogy hozzáférjen a props, state és a komponens módszereihez.
class MyComponent extends React.Component {
// Helyes: 'this' a komponens példánya lesz
componentDidMount() {
console.log(this.props);
}
// Helytelen: 'this' nem lesz a komponens példánya, amikor a React hívja
componentDidUpdate = () => {
// Itt a 'this' a függvény definiálásának kontextusához kötött,
// ami valószínűleg nem a komponens példánya a React hívásakor.
console.log(this.state);
}
}