javascript - 单击删除按钮时删除所选索引处的项目-React
问题描述
我目前遇到一个问题,当我单击特定元素的删除按钮时,它每次只会删除列表数组中的第一项,而不是选定的一项。
对此的任何帮助将不胜感激!:)
import "./css/App.css";
import React, { useRef } from "react";
function App() {
const [item, setItem] = React.useState("");
const [list, updateList] = React.useState([]);
const toDoItem = (item) => {
let newItem = { text: item.target.value, key: Date.now() };
setItem(newItem);
};
const addItem = () => {
updateList((prevState) => [...list, item]);
document.getElementById("Input").value = "";
};
const deleteItem = (index) => {
updateList((prevState) => {
let items = [...prevState];
console.log(items);
items.splice(index, 1);
return items;
});
};
return (
<div className="App">
<h2>Type a todo item you want to complete</h2>
<input
type="text"
placeholder="Add a todo..."
id="Input"
onChange={toDoItem}
/>
<button id="Add" onClick={addItem}>
Add
</button>
{list.map((item, index) => {
return (
<ol key={index}>
{item.text[0].toUpperCase() + item.text.slice(1).toLowerCase()}
<button>Edit</button>
<button id="Delete" onClick={deleteItem}>
✗
</button>
{/* <button onClick={test}>test</button> */}
</ol>
);
})}
</div>
);
}
export default App;
解决方案
您在通话时忘记了通过索引deleteItem
onClick={() => deleteItem(index)}
推荐阅读
- leveldb - 为什么leveldb的bloomfilter的位数组需要分割成很多filterblock?
- openlayers - 带有地图框图层缩放问题的 OpenLayers5
- ionic-framework - 多键离子过滤JSON文件数据
- android - 如何管理 manifestProduct 风味的清单文件和包名
- mysql - 如何对共享相同值的行组中某些值的出现进行求和和计数
- c++ - 从自定义插件中配置 gradle cpp 插件
- python - 如何在Python中的一行使用中将f字符串与b字符串合并
- c# - 请求的 URL:/User/User/AddCustomer 在单击编辑按钮和列表按钮后,我得到两个控制器名称
- scala - Scala隐式转换冲突奇怪
- svn - 无法在 AiX 7.2 机器上使用已编译的二进制文件(版本 1.10.2)创建 Subversion 存储库