実現したいこと
タイトル通りなのですが、要素に配列を持つオブジェクトの中身をsetStateで更新する方法を教えていただきたいです。
更新の内容は配列の中にチェックボックスのvalueを追加・削除したいです。
js
1const defaultState = { 2 hoges: [] 3} 4 5const [state, setState] = useState(defaultState) 6const updateState = (event) => { 7 setState(ここをどう書くか) 8 // { hoges: ['huga', 'piyo'] } -> setStateするごとに配列の中身が増えていくイメージ 9}
単に要素の中身を更新するなら↓
js
1setState({ ...state, [event.target.name]: event.target.value })
シンプルな配列にvalueを追加・削除するなら↓
js
1const [state, setState] = useState([]) 2if (event.target.checked) { 3 setState([...state, event.target.value]) 4 return 5} 6setState( 7 state.filter((v) => v !== event.target.value) 8)
だと思うのですが、オブジェクト内の配列となった時の更新方法がいまいち分かりません。
どなたか教えていただけると幸いです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/08/15 16:51