mongodb中的每个条目都有一个唯一的id,我在组件中的Key属性中使用这个id来解决这个错误:
警告:列表中的每个子元素都应该有唯一的"键"属性。
假设我们有一个输入字段,您可以在其中输入要添加到数据库中的文本,还有一个显示数据库的表,当您向数据库中添加内容时,您可以看到添加的项目。
const handleSubmit = (e) => {
e.preventDefault();
const code = e.target.elements['code'].value;
addToDB(code);
setDataFromDB([...dataFromDB, { code}]);
};
这里我更新datafromDB的状态来查看变化。问题是因为我们在这一步没有给新输入分配任何id,所以它没有任何导致这个错误的id:警告:列表中的每个子元素都应该有唯一的"键"属性。
{dataFromDB &&
dataFromDB.map((el) => {
return <CodeComponent key={el._id} el={el} />;
})}
实际上,它应该进入数据库,然后mongodb给它分配一个新的唯一id。这就是为什么在初始渲染数据库中预存的项目时,我没有这个问题。
我该怎么办?
1条答案
按热度按时间zbdgwd5y1#
我猜,您使用的是
insertOne
,它将始终返回如下数据为此,您需要更新代码。
例如: