在React中,使用列表时需要给列表中的每个元素都指定一个唯一的key值,以便React能够准确地跟踪每个元素的变化。在这个教程中,我们将学习如何在React中使用列表以及如何正确地指定key值。
const names = ["Alice", "Bob", "Charlie"];
const listItems = names.map((name, index) => (
<li key={index}>{name}</li>
));
return <ul>{listItems}</ul>;
在这个例子中,我们使用map方法将数组names中的每个元素映射成一个li元素,并为每个li元素指定了一个唯一的key值。
import React, { useState } from 'react';
const ListComponent = () => {
const [names, setNames] = useState(["Alice", "Bob", "Charlie"]);
const addName = () => {
const newName = prompt("Enter a new name:");
setNames([...names, newName]);
};
const deleteName = (index) => {
const newNames = names.filter((name, i) => i !== index);
setNames(newNames);
};
const listItems = names.map((name, index) => (
<li key={index}>
{name}
<button onClick={() => deleteName(index)}>Delete</button>
</li>
));
return (
<div>
<ul>{listItems}</ul>
<button onClick={addName}>Add Name</button>
</div>
);
};
export default ListComponent;
在这个例子中,我们使用useState来创建一个保存姓名数组的state。在addName方法中,我们使用prompt函数获取用户输入的新姓名,并使用setNames方法将新姓名添加到数组中。在deleteName方法中,我们使用filter方法过滤掉要删除的姓名,并更新state。在listItems中,我们为每个li元素添加一个Delete按钮,点击按钮时会调用deleteName方法删除对应的姓名。