これは難しいとは思わないが、私はそれを行う最良の方法を理解できません。この関数は、チェックボックスのグループから配列を作成しています。私は、各オブジェクトが対応するデータを持つことができるので、配列を分割してオブジェクトの配列を作成したいと考えています。既存のrolesInterestedIn.roleType
を除外するにはどうすればよいですか?オブジェクトの配列内の既存のオブジェクトをフィルタリングします。
handleTypeOfWorkSelection(event) {
const newSelection = event.target.value;
let newSelectionArray;
if(this.state.typeOfWork.indexOf(newSelection) > -1) {
newSelectionArray = this.state.typeOfWork.filter(s => s !== newSelection)
} else {
newSelectionArray = [...this.state.typeOfWork, newSelection];
}
this.setState({ typeOfWork: newSelectionArray }, function() {
this.state.typeOfWork.map((type) => {
this.setState({
rolesInterestedIn: this.state.rolesInterestedIn.concat([
{
roleType: type,
}
])
}, function() {
console.log(this.state.rolesInterestedIn);
});
})
});
}
UDPATE
rolesInterestedIn: [
{
roleType: '',
experienceYears: ''
}
],
このコードの問題点を教えてください。期待どおりに機能していない場合は、サンプルデータを提供すれば、期待していることと、このメソッドがどのような結果を出しているのかが分かります。 –
'rolesInterestedIn'はチェックボックスを選択または選択解除するたびに新しいオブジェクトを作成します。私は、それが必要な場合は、選択を追加したり削除したりして、重複をチェックして更新したいと思っています。 – bp123