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