Middle
Zašto se metode životnog ciklusa ne mogu definisati pomoću streličastih funkcija?
sobes.tech АИ
Одговор од АИ
У класовим компонентама React, методи животног циклуса не треба дефинисати помоћу стреличних функција, јер то доводи до везивања this за тренутни контекст (обично глобални или undefined у строгом режиму), а не за инстанцу компонента. React позива ове методе са одређеним this контекстом који треба да указује на инстанцу компонента како би имао приступ props, state и методама компонента.
class MyComponent extends React.Component {
// Правилно: 'this' ће бити инстанца компонента
componentDidMount() {
console.log(this.props);
}
// Грешно: 'this' неће бити инстанца компонента када га позове React
componentDidUpdate = () => {
// Овде је 'this' везано за контекст у којем је дефинисана стрелична функција,
// што вероватно није инстанца компонента при позиву од React.
console.log(this.state);
}
}