В моем render () У меня есть следующий компонент с обработкой событий.
render() { ...
<input type="text"
onChange={(_) => { this.restate("email", _.target.value); }} />
}
private restate(type: string, input: any) { ...
if (type === "email")
this.setState({ ... });
}
Это работает и ведет себя как положено.Поскольку я сейчас изучаю React, я пытаюсь улучшить свой синтаксис, чтобы он был приятным на вид.Я нашел этот ответ , и мне понравилась краткость назначения обработчика событий.Поэтому я изменил свой рендеринг и реализовал обработчик, который будет передаваться следующим образом.
render() { ...
<input type="text" onChange={ this.handleEmail } />
}
private handleEmail(data: React.ChangeEvent<HTMLInputElement>) {
console.log("hit before: " + data.target.value);
console.log(this);
this.restate("email", data.target.value);
}
Изменение в разметке, похоже, работает, потому что метод handleEmail (...) вызывается.Однако я получаю сообщение об ошибке, в котором говорится, что restate (...) не является методом undefined , и, фактически, когда я исследую, что такое , это ,Я обнаружил, что это undefined .
Мне нужна помощь, чтобы понять, что я делаю неправильно, и как это отличается от статьи, указанной выше.Я пытался найти в Google различия синтаксиса между версиями React, но ничего не получил.И я не уверен, как описать проблему в правильных технических терминах.