Вы используете значение prop на своих входах, но не предоставляете ему метод для фактической обработки изменения.
К вашему вводу добавьте обработчик onChange
, но не вызывайтеit .
<input type="text" value={props.caption} onChange={this.handleChange}/>
Функция handleChange
должна выглядеть следующим образом:
handleChange = (e) => this.setState({something: e.target.value})
Она принимает событие какаргумент, и вы получаете доступ к значению ввода, используя e.target.value
;Затем вы обновляете состояние новым значением, которое должно быть привязано к входному значению value
prop.Это называется контролируемый компонент, где вы обрабатываете изменения в React.
Подробнее о контролируемых и неконтролируемых компонентах можно прочитать здесь: https://reactjs.org/docs/uncontrolled-components.html