【发布时间】:2022-01-02 05:45:56
【问题描述】:
我正在尝试创建删除我的待办事项的功能,但是当单击删除按钮时,没有任何反应,我的代码有什么问题,请帮助我!非常感谢!
import React, { useState } from "react";
function App() {
const [value, setValue] = useState("");
const [todos, setTodos] = useState([]);
// you can use the submit itself, no need for an extra addTodo function
handleSubmit = (e) => {
console.log("x");
e.preventDefault();
setTodos([...todos, value]);
setValue("");
};
deleteTodo = (id) => {
console.log("delete")
const removedArr = [...todos].filter(todo => todo.id !== id);
setTodos(removedArr);
}
return (
<div>
<form onSubmit={handleSubmit}>
<input
onChange={(e) => setValue(e.target.value)}
type="text"
placeholder="add todo"
/>
<button type="submit">Add</button>
</form>
{todos.map((todoValue) => (
<div>
{todoValue} <button deleteTodo={()=>deleteTodo(id)}>x</button>
</div>
))}
</div>
);
}
export default App;
链接代码框:https://codesandbox.io/s/tender-cdn-cy3w4?file=/src/App.js:0-933
【问题讨论】:
-
什么是 id?是否有任何 id 对应于每个 todovalue?
-
你的待办事项只是字符串,它们没有任何 ID
-
您需要将
id添加到您的待办事项中,如下所示:codesandbox.io/s/dry-moon-5c3jc?file=/src/App.js