Middle
Proč nelze metody životního cyklu definovat pomocí šipkových funkcí?
sobes.tech AI
Odpověď od AI
V třídních komponentách React nelze metody životního cyklu definovat pomocí šipkových funkcí, protože to povede k navázání this na aktuální kontext (obvykle globální nebo undefined v režimu přísného režimu), nikoli na instanci komponenty. React tyto metody volá s určitým kontextem this, který by měl odkazovat na instanci komponenty, aby měl přístup k props, state a metodám komponenty.
class MyComponent extends React.Component {
// Správně: 'this' bude instance komponenty
componentDidMount() {
console.log(this.props);
}
// Chybně: 'this' nebude instancí komponenty při volání Reactem
componentDidUpdate = () => {
// Zde je 'this' navázáno na kontext, ve kterém byla definována šipková funkce,
// což pravděpodobně není instance komponenty při volání Reactem.
console.log(this.state);
}
}