Sobes.tech
Middle

Kodėl gyvenimo ciklo metodų negalima apibrėžti naudojant rodyklės funkcijas?

sobes.tech AI

Atsakymas iš AI

React klasės komponentuose gyvenimo ciklo metodai neturėtų būti apibrėžti naudojant rodyklės funkcijas, nes tai sukels this susiejimą su dabartiniu kontekstu (paprastai globaliu arba undefined griežtame režime), o ne su komponento egzemplioriumi. React iškviečia šiuos metodus su tam tikru this kontekstu, kuris turėtų nurodyti į komponento egzempliorių, kad būtų galima pasiekti props, state ir komponento metodus.

class MyComponent extends React.Component {
  // Teisinga: 'this' bus komponento egzempliorius
  componentDidMount() {
    console.log(this.props);
  }

  // Neteisinga: 'this' nebus komponento egzempliorius, kai jį iškvies React
  componentDidUpdate = () => {
    // Čia 'this' yra susietas su kontekstu, kuriame buvo apibrėžta rodyklės funkcija,
    // kas tikriausiai nėra komponento egzempliorius, kai jį iškviečia React.
    console.log(this.state);
  }
}