Sobes.tech
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);
  }
}