要更改列表中的项目值,必须将新值传递给组件并在组件中更新状态。以下是一个示例,其中使用了一个名为"items"的列表和一个名为"ListItem"的组件:
import React, { useState } from 'react';
import ListItem from './ListItem';
function App() {
const [items, setItems] = useState([
{ id: 1, title: 'Item 1' },
{ id: 2, title: 'Item 2' },
{ id: 3, title: 'Item 3' },
]);
const handleEdit = (id, newValue) => {
const updatedItems = items.map(item =>
item.id === id ? { ...item, title: newValue } : item
);
setItems(updatedItems);
};
return (
{items.map(item => (
))}
);
}
在这个实例中,App组件将"items"状态传递给"ListItem"组件,并将"handleEdit"函数作为prop传递给它。当"ListItem"组件中的编辑按钮被点击时,它会调用"handleEdit"函数并传递项的新值以及项的id作为参数。"handleEdit"函数会遍历"items"状态,找到具有特定id的项,并将其标题更改为新值。最后,更新后的"items"状态被设置回App组件。