在TypeScript中使用React的useState
钩子来更新数组中对象的键值,可以通过以下步骤实现:
useState
。假设我们有一个数组,其中包含多个对象,我们想要更新其中一个对象的某个键的值。
import React, { useState } from 'react';
interface Item {
id: number;
name: string;
}
const App: React.FC = () => {
const [items, setItems] = useState<Item[]>([
{ id: 1, name: 'Item 1' },
{ id: 2, name: 'Item 2' },
{ id: 3, name: 'Item 3' },
]);
const updateItemName = (id: number, newName: string) => {
setItems(prevItems =>
prevItems.map(item =>
item.id === id ? { ...item, name: newName } : item
)
);
};
return (
<div>
{items.map(item => (
<div key={item.id}>
{item.name}
<button onClick={() => updateItemName(item.id, 'Updated Name')}>
Update
</button>
</div>
))}
</div>
);
};
export default App;
interface Item
定义了数组中对象的结构。useState
初始化一个包含多个对象的数组。updateItemName
函数通过map
方法遍历数组,找到匹配的对象并更新其name
属性。通过这种方式,你可以确保在更新数组中的对象时,不会直接修改原数组,而是创建一个新的数组,从而遵循React的状态更新的最佳实践。
领取专属 10元无门槛券
手把手带您无忧上云