今回は、React の useState()
で配列データを扱っている際に、特定の要素のみを更新する方法です。
動くには動くけど、もっとスタイリッシュに書きたい!と思って調べたところ、下記の記事がヒットしました。
useStateで配列の特定の要素を更新する方法
https://zenn.dev/web_tips/articles/c026df542bc18b
サンプルコードは下記のとおりです。
import { useState } from "react"; const fruitsList = [ "orange", "apple", "grape", "banana", "cherry", ]; const [fruits, setFruits] = useState(fruitsList); const update = (index, newData) => { setFruits( fruits.map((fruit, i) => (i === index ? newData : fruit)) ); }
データを更新する際に、update()
を呼び出すのですが、この関数内で map()
を使って State
の配列データを更新しています。
これを見るまでは、一旦変数で State
の値を更新してから、それを setFruits()
に渡して State
の値を更新していたのですが、こちらの方が行数も少なくて分かりやすいです!
処理の内容は同じでも、やはり行数が少ないとコードがスッキリしていいですね。
以上、React の useState() で特定の配列の値のみを更新する方法についてでした。
ご参考になれば幸いです。