javascript 更新React状态数组中的值

wz3gfoph  于 2022-12-10  发布在  Java
关注(0)|答案(2)|浏览(146)

我正在尝试更新一个非常简单的状态数组。
下面是我初始化数组的过程。

const [total, setTotal] = useState([0,0,0]);

我还需要跟踪一个名为option的索引
为了简单起见,我只需要一个函数,它接受'price'作为参数,并将其添加到名为'total'的状态数组中

const addToTotal = (price) => {setTotal(total[option] += price)}

我知道我必须使用spread运算符来更新,这是不正确的,但我希望这能让我知道我想做什么。
编辑:很抱歉,这里有一点混乱。当我说'add'时,我想增加那个特定数组中的数字。
如果option = 1那么我'加' 1它,结果应该是[1,0,0]

5rgfhyps

5rgfhyps1#

一种方法是使用map更新状态

const addToTotal = (price) => {
    const newState = total.map((t, i) => i === option ? t + price : t)
    setTotal(newState)
)}
hujrc8aj

hujrc8aj2#

在usestate set方法中使用回调

const addToTotal = (price) => {
    setTotal(prev => {
     prev[option] += price
     return prev
    }
  )}

相关问题