Sobes.tech
Middle

Ինչու՞ չեն կարող սահմանվել կյանքի ցիկլի մեթոդները սլաքային ֆունկցիաներով:

sobes.tech AI

Պատասխան AI-ից

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);
  }
}