小编Cha*_*tis的帖子

使用 useState() 钩子从数组更新对象的单个属性

我在 todos 状态挂钩中有一组对象。如果完成,我想更改单个属性。似乎我可以更新它但不使用 setTodos。我是 React 初学者。

  const [todos, setTodos] = useState([]);
  const [input, setInput] = useState("");

  const addTodoHandler = (e) => {
    e.preventDefault();
    if (input.length < 2) return;
    setTodos([...todos, { id: Date.now(), text: input, isComplete: false }]);
    setInput("");
  };

  const removeHandler = (id) => {
    setTodos(todos.filter((todo) => todo.id !== id));
  };

 const completeHandler = (id) => {

    // working without setTodo()
    // errors when added setTodo()
     todos.map((todo) =>
       todo.id === id ? console.log((todo.isComplete = !todo.isComplete)) : ""
     );

  };

      <div …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-hooks

2
推荐指数
1
解决办法
2432
查看次数

标签 统计

javascript ×1

react-hooks ×1

reactjs ×1