在React中添加新对象到状态数组中,如果发现重复则更新对象键可以使用以下代码:
const [items, setItems] = useState([]);
function addItem(item) {
const index = items.findIndex((i) => i.id === item.id);
if (index === -1) {
// Add new item
setItems([...items, item]);
} else {
// Update existing item
const updatedItems = [...items];
updatedItems[index] = item;
setItems(updatedItems);
}
}
在这个示例中,我们首先查找新项目在数组中的位置。如果找不到就将新项目添加到数组中,否则将更新项目的键并替换原来的项目。这样做的好处是避免向数组添加重复的项,同时也更新了现有项的可变属性。
使用useState
来维护items
数组的状态。要执行添加操作,您可以调用addItem
函数并传递要添加的新项目作为参数。
另外,如果需要使用键而不是id
来查找项目,请相应调整findIndex
函数的实现。