Есть два способа заставить функцию класса работать.
1. Объявите это как функцию стрелки
Если вы объявите changeToDefaultImg
как changeToDefaultImg = () = {...}
и передадите его как onError={this.changeToDefaultImg}
, он будет работать нормально.
2. Вызов функции внутри функции стрелки
Если вы вызываете его внутри функции стрелки, такой как onError={() => this.changeToDefaultImg()}
, она также будет работать нормально.
Как видите, вы делаете второй случай. Если вы не используете функции стрелок, вы получите неправильный код this
.
Вы должны заметить, что лучше использовать первый способ, потому что вы не создаете экземпляр функции стрелки на каждом рендере, как во втором способе.
Вам следует взглянуть на какой-нибудь связанный вопрос .