Reactjs получает идентификатор пользователя / значения только последних выбранных записей.
Здесь у меня есть 3 записи в массиве через реагировать.
{ id: 1, name: "Tony", Age: "18" , gender: "male" },
{ id: 2, name: "John", Age: "21" , gender: "female"},
{ id: 3, name: "Luke", Age: "78" , gender: "male"},
всякий раз, когда я выбираютри записи из флажка и отправить, только одна запись выбирается и оповещается.
Эта выбранная запись всегда будет значением / идентификатором пользователя последнего установленного флажка.
Что я пытаюсь сделать, это убедиться, что код выбирает и отправлять все три записи, если отмечен соответствующий флажок.В приведенном ниже коде я также попробовал метод
arr.push () и arr.concat () , но не могу заставить его работать ...
Вот кодировка до сих пор
class Application extends React.Component {
constructor(props) {
super(props);
this.useridChanged = this.useridChanged.bind(this);
this.onSubmit = this.onSubmit.bind(this);
this.state = {
rec: [
{ id: 1, name: "Tony", Age: "18", gender: "male" },
{ id: 2, name: "John", Age: "21", gender: "female" },
{ id: 3, name: "Luke", Age: "78", gender: "male" },
],
chrk: '',
};
}
useridChanged(e) {
this.setState({ chrk: e.target.value });
}
onSubmit(e) {
//onSubmit = (e) => {
e.preventDefault();
const { chrk } = this.state;
//let arr = [];
//arr.concat(chrk);
const arr = [];
arr.push(chrk);
alert(arr);
console.log(arr);
const data = { check: arr };
console.log(data);
/*
send to database by axios
axios.post('http://localhost/apidb_react/checkbox.php', data)
.then(res => console.log(res.data));
*/
}
render() {
return (
<div>
<div>
<h3>Get values of all Selected Records</h3>
<form onSubmit={this.onSubmit}>
<ul>
{this.state.rec.map((obj, i)=>(
<li key={i}>
<input
type="checkbox"
name="chrk"
value={obj.id}
onChange = {this.useridChanged}
/>
{obj.name} - {obj.Age} - {obj.gender}
</li>))}
</ul>
<button className="btn btn-primary">Submit</button>
</form>
</div>
</div>
);
}
}
ReactDOM.render(<Application />,document.getElementById('app'));