<오늘 이슈 코드>
const handleCompleted = (id) => {
let newTodo = todos.map((todo) => {
if (todo.id === id) {
todo.isDone = !todo.isDone;
}
return todos; // todos는 [{}, ]형태로 state선언되어 있다!!
});
setTodos(newTodo);
};
<해결>
map, filter 메서드 사용시 if 조건문 사용시, return 값을 주되
return값을 똑바로 줄것!
const handleCompleted = (id) => {
let newTodo = todos.map((todo) => {
if (todo.id === id) {
todo.isDone = !todo.isDone;
}
return todo;
// if조건문 충족시 조건문 내용 로직대로 진행되고, todos에 속한 {}요소,
즉, 모든 각각의 todo가 리턴되어 새로운 배열을 구성하는 것이 map 메서드의 내용이다.
});
setTodos(newTodo);
};