reactjs 在react中从todo列表中删除todo

flvlnr44  于 2023-04-20  发布在  React
关注(0)|答案(1)|浏览(118)

我正在创建这个待办事项列表应用程序,但我似乎找不到如何使React图标时,点击删除该值,它的旁边。
我试着这样做:

const click = () => {
    setTodos(todos => todos.filter((item) => item.id));
  }

  return (
    <>
    <h2>Your Todos</h2>
     <NewTodo onAdd={(newTodo) => setTodos([...todos, newTodo])} />
      <ul>
    {visibleTodos.map((todo) => (
      <li key={todo.id}>
        {todo.text}
        <button onClick={click}><AiFillDelete /></button>
          </li>    
        ))}
      </ul>
     </>
    );
   }

当我点击todo旁边的图标时,它被删除了,但是当我试图删除另一个值时,它不起作用。我只能删除一个todo。

gk7wooem

gk7wooem1#

这意味着什么过滤器?:

todos.filter((item) => item.id)

这是返回所有 * 有ID* 的项目,这可能是所有项目,不是吗?通常你会过滤 * 匹配条件 * 的项目。例如,所有不匹配特定ID的项目:

todos.filter((item) => item.id !== id)

所以你需要一个id的值,它可以传递给函数:

const click = (id) => {

然后你只需要将ID传递给函数:

onClick={() => click(todo.id)}

相关问题