【发布时间】:2020-11-17 00:06:05
【问题描述】:
我有一个 todos 状态,它是一个空数组。我将一个对象添加到 todos 状态,并将所有添加的 todos 的属性已完成设置为 false。
const [todos, setTodos] = useState([]);
const [todoForm, setTodoForm] = useState({
id: null,
task: '',
completed: false,
time: '',
});
这是我用来更新待办事项的 useEffect 钩子
useEffect(() => {
const sortedArray = todos.sort((a, b) => b.completed - a.completed);
setTodos(sortedArray);
}, [todos, todos.completed]);
const toggleComplete = (id) => {
setTodos(
todos.map((todo) => {
if (todo.id === id) {
return {
...todo,
completed: !todo.completed,
};
}
return todo;
})
);
};
【问题讨论】:
标签: reactjs react-hooks use-effect