** ОБНОВЛЕНО:
** ваша основная ошибка - вы связываете свой ввод с переменной состояния, называемой «длина», а имя входа - «электронная почта», они должны быть одинаковыми.
Вы можете сделать это проще для себя, вам вообще не нужно связываться с конструктором, если вы используете функции со стрелками, так что, если вы напишите свою функцию следующим образом:
onChange = (e) => {
this.setState({ [e.target.name]: e.target.value });
}
Ваш конструктор и состояние будут выглядеть так:
constructor() {
super();
this.state = {
title: '',
email: '',
image: '',
source: '',
available: '',
date:'',
errors: {}
}
}
И в JSX вы по-прежнему передаете свои свойства таким же образом, например:
<input value={this.state.email} onChange={this.onChange} type="text"
className="form-control" name="email" placeholder="e.g. 3:36" />
Полная рабочая демонстрация:
![Edit 487m15996x](https://codesandbox.io/static/img/play-codesandbox.svg)