【问题标题】:Checkbox keeps autockecking [closed]复选框不断自动检查[关闭]
【发布时间】:2021-06-04 06:13:14
【问题描述】:

我有一个我无法真正弄清楚的问题。我有这个待办事项列表,我需要有复选框。问题是,如果我检查了最重要的任务,然后将其删除,则以下任务会自行检查。

如果我使用按钮而不是复选框,则功能可以正常工作,但我需要有一个复选框。任何想法为什么?下面的代码框有一个类似的地方。谢谢!

https://codesandbox.io/s/student-frontend-developer-template-forked-jupcx?file=/src/App.js

【问题讨论】:

  • 如果你给我们你试过的代码会更容易。
  • 我想通了。这是输入复选框的问题。 completeTodo(todo.id)} checked={todo.completed}

标签: javascript reactjs checkbox


【解决方案1】:

将您的 key 更改为 todo.id 而不是 id (避免使用 index 作为键,尤其是在您删除数组中的项目并使用同一数组呈现内容的情况下) :-

<Todo
key={todo.id}
id={id}
todo={todo}
completeTodo={completeTodo}
 removeTodo={removeTodo}
 />

在此处了解更多为什么 - https://reactjs.org/docs/lists-and-keys.html

【讨论】:

  • 如果数据从不改变,你会说使用索引作为键是安全的吗?
  • 我认为对于只读列表,例如一些 info 点,其数据来源不是 后端,而是在前端本身,那就是您可以在其中使用index 作为键。大多数情况下,您都有来自后端的唯一 ID,因此请始终使用这些 ID 作为键。
猜你喜欢
  • 2021-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-22
  • 1970-01-01
  • 1970-01-01
  • 2021-09-18
相关资源
最近更新 更多