【发布时间】:2021-07-01 16:55:36
【问题描述】:
我有一个在 React 中创建/删除/更新功能的简单列表。我在更新时遇到问题,当我修改输入时,输入会更改值,但在 console.log 中我看到相同的数组更新而没有进行任何更改。
通常在更新后,新列表应该使用新的更改进行更新,但事实并非如此。相反,在新数组中,我有 name: undefined 我错过了什么吗?
import React, { useEffect, useState } from "react";
import { v4 as uuidv4 } from "uuid";
export default () => {
const initialList = [
{
id: "a",
name: "John",
},
{
id: "b",
name: "Eric"
},
{
id: "c",
name: "Jonathan"
},
];
const [list, setList] = React.useState(initialList);
const [name, setName] = React.useState("");
function handleChangeUpdate(id) {
const newList = list.map((item) => {
if (item.id === id) {
const updatedItem = {
...item,
};
return updatedItem;
}
return item;
});
setList(newList);
console.log(newList);
}
return (
<div>
<ul >
<div>
{list.map((item) => (
<li key={item.id}>
<input className="form-control" onChange={()=> handleChangeUpdate(item.id)} defaultValue={item.name}></input>
</li>
))}
</div>
</ul>
</div>
);
};
【问题讨论】:
标签: javascript reactjs