У меня есть веб-приложение, написанное на React. У меня есть сопоставленный (!) Компонент, который представляет массив состояний. Это сопоставленный дочерний компонент:
<div className="summarized_content_div">
<ul>
<li>Benutzername: <input id='inputBenutzername' type="text" defaultValue={this.props.benutzername}/></li>
<li>Vorname: <input id='input_vorname' type="text" defaultValue={this.props.vorname}/></li>
<li>Nachname: <input id='input_nachname' type="text" defaultValue={this.props.nachname}/></li>
<li>E-Mail: <input id='input_email' type="text" defaultValue={this.props.email}/></li>
<li>Letzter Login: <input id='input_letzter_login' type="text" defaultValue={this.props.letzter_login}/></li>
<li>Status: <input id='input_status' type="text" defaultValue={this.props.status}/></li>
<input id="speichern" className="button" type="button" value="Speichern"/><input id="löschen" className="button" type="button" value="Löschen"/>
</ul>
</div>
Теперь я хочу, чтобы значение полей ввода (input_benutzername, input_vorname, ...) передавалось родительскому компоненту одним нажатием кнопки. Я мог бы что-то вроде:
const value = document.getElementById('whatever').value
, а затем сделать что-то с этим значением.
... но, как я уже сказал, эти компоненты сопоставлены, поэтому он всегда передает значение первый сопоставленный компонент, потому что он ищет первый элемент с этим идентификатором (я думаю).
Итак, мой последний вопрос: как я могу получить значение полей ввода без использования getElementById, потому что это не работает .
Спасибо за помощь
РЕДАКТИРОВАТЬ:
Это родительский компонент:
doSomethingWithTheValues = (values) => {
...
}
...
<Route path="/verwaltung/benutzer">
<div>
{this.props.benutzer.map((benutzer, index) => {
return <BenutzerItem
index={index}
key={benutzer.id}
id={benutzer.id}
benutzername={benutzer.benutzername}
vorname={benutzer.vorname}
nachname={benutzer.nachname}
email={benutzer.email}
letzter_login={benutzer.letzter_login}
status={benutzer.status}
/>
})}
</div>
</Route>