useState钩子是React中用于管理组件状态的一种机制。当状态中包含对象数组时,更新其中某个值的方法如下:
const [data, setData] = useState([
{ id: 1, name: 'John' },
{ id: 2, name: 'Jane' },
]);
const index = data.findIndex(item => item.id === 2);
上述代码将返回id为2的对象在数组中的索引。
const newData = [...data];
newData[index] = { ...newData[index], name: 'Updated Name' };
上述代码将创建一个新的数组newData,并将原数组data中的所有对象复制到新数组中。然后,通过展开运算符(...)将指定索引处的对象复制到新数组中,并更新name属性的值。
setData(newData);
完整的代码示例:
import React, { useState } from 'react';
const MyComponent = () => {
const [data, setData] = useState([
{ id: 1, name: 'John' },
{ id: 2, name: 'Jane' },
]);
const updateName = () => {
const index = data.findIndex(item => item.id === 2);
const newData = [...data];
newData[index] = { ...newData[index], name: 'Updated Name' };
setData(newData);
};
return (
<div>
<button onClick={updateName}>Update Name</button>
<ul>
{data.map(item => (
<li key={item.id}>{item.name}</li>
))}
</ul>
</div>
);
};
export default MyComponent;
这样,当点击"Update Name"按钮时,id为2的对象的name属性将被更新为"Updated Name"。
领取专属 10元无门槛券
手把手带您无忧上云