Я понимаю, что вы можете подумать, что это избыточный вопрос, но выслушайте меня.
Я работаю с компонентами класса React и только что узнал, что нам нужно связать функцию обработчика событий в конструкторе компонента. для доступа к this.setState()
внутри обработчика событий. Теперь из того, что я понимаю о JavaScript классах, к this
можно получить доступ любым методом внутри класса.
Чтобы продемонстрировать, что я говорю, вот код:
class Parent {
setState() {
console.log("Set State is called");
}
}
class Child extends Parent {
eventHandler() {
this.setState();
}
render() {
console.log("Render method called");
console.log("assume an event happened and event handler is called");
this.eventHandler();
}
}
new Child().render()
Вывод вышеприведенного кода:
Render method called
assume an event happened and event handler is called
Set State is called
В отличие от кода выше, как работает реагирует (т. Е. Предполагается, что setState
является методом, определенным в классе React.Component
), почему реакция выдает ошибку когда this.setState()
вызывается внутри обработчика событий?