チェックボックスをオンにすると、未定義が表示されます。それは私がfind
を正しく使用したと思うのは奇妙です。それとももっと良い方法がありますか?チェックボックスにバインドし、チェック状態のベースを更新する
http://jsbin.com/ficijuwexa/1/edit?js,console,output
class HelloWorldComponent extends React.Component {
constructor(){
super()
this.handleChange = this.handleChange.bind(this);
this.state = {
"fruits":[
{"name":"banana","value":true},
{"name":"watermelon","value":false},
{"name":"lemon","value":true},
]
}
}
handleChange(e,key){
console.log(key)
console.log(e.target.checked)
const newFruitsData = this.state.fruits.find(obj => {
obj.name === key ? obj.value = e.target.checked : ''
});
console.log(newFruitsData) //why this is undefined?!
}
render() {
return (
<div>
{this.state.fruits.map(obj =>
<div key={obj.name}>
<label>{obj.name}</label>
<input onChange={(e) => this.handleChange(e, obj.name)} type="checkbox" defaultChecked={obj.value} />
</div>
)}
<br />
<pre>{JSON.stringify(this.state.fruits,null,2)}</pre>
</div>
);
}
}
は、私はウルのコードを使用http://jsbin.com/betilanogo/1/edit 、見てみましょう。 – Mellisa