【发布时间】:2022-01-01 05:45:24
【问题描述】:
我在删除元素时遇到问题。它不会删除特定元素,而是仅删除最后一个新创建的元素。我不确定我要去哪里错了。我引用了this tutorial,这表明我有点想做。 (我是 React 新手)
import React,{useState, useRef} from "react";
const Body = () => {
const [list, setList] = useState([]);
const AddInput = () => {
setList([...list, {placeholder:"Class Name"}]);
};
const DeleteInput = (index) => {
const l = [...list];
l.splice(index,1);
setList(l);
};
const InputChangeHandler = (event, index) => {
const l = [...list];
(l[index]).value = event.target.value;
setList(l);
};
return (
<div>
<button onClick={AddInput}>Add</button>
{list.map((item, key)=>
<div key={key}>
<input type={"text"} id={key} placeholder={item.placeholder} onChange={e=>InputChangeHandler(e, key)}/>
<button id={key} onClick={() => DeleteInput(key)}>Delete</button>
</div>
)}
</div>
);
}
export default Body;
元素(输入字段+按钮):
删除上次创建的:
【问题讨论】:
-
我建议用
filter方法和元素的id来处理
标签: javascript reactjs react-hooks