reacthook - typescriptで、クリックするたびにオブジェクトの配列に新オブジェクトを追加する処理を実装したいですが、最初の配列がundefinedにしたまま配列を追加していく(下記パターン2)方法はありませんか?
typescript
1 2type item = { id: number, value: string } 3// パターン(1) console -> (クリック回数+1) [{...},{...},...,{...}] 4const [items, setItems] = useState<item[]>({id:0, value:"init"}) 5// パターン(2) console -> undefined 6//const [items, setItems] = useState<item[]|undefined>() 7 8 9return( 10 <button 11 onClick={() => { 12 setItems(items.concat({id: 1, value: "hoge"})) // (1) 13 /* setItems(items?.concat({id: 1, value: "hoge"})) (2)*/ 14 console.log(items) 15 } 16 }> 17 Add 18 </button> 19)
パターン(1)の場合は初期配列の分だけstateに保持される値が余分なのでこれを削りたいのでパターン(2)で実装したところオブジェクトはundefinedのままになってしまいます。
どうすればよいでしょうか?また、上記コードのほかに同じような目的を達成可能なコーディングがありましたら教えていただけるとありがたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/29 08:31
2020/10/29 08:34