首页 > 解决方案 > 在 useState 中保存的数组中包含的一系列对象中增加键的值 (+1)

问题描述

const = [items, setItems] = useState([{ name: "foo", wait: 1 }, { name: "bar", wait: 5 }])

对于项目内的所有对象,我需要将键的值wait增加 1。

到目前为止,这是我的尝试...

setItems(items.map(e => [...e, e.wait++]))

我遇到了一些疯狂的错误......我不确定我是否应该使用扩展运算符或接近我所拥有的东西。

标签: javascriptarraysreactjsreact-hooksspread-syntax

解决方案


map应该返回对象而不是数组。

const items = [
  { name: "foo", wait: 1 },
  { name: "bar", wait: 5 },
];

const updated = items.map((item) => ({ ...item, wait: item.wait + 1 }));

// setItems(items.map(item => ({...item, wait: item.wait + 1})));

console.log(updated);


推荐阅读