Alret.API("문자열","문자열",[{왼},{오}])
Alert.alert("Task 삭제", "정말 삭제하시나요?", [ { text: "취소", style: "cancel", }, { text: "확인", style: "destructive", onPress: () => { setTodos((prev) => prev.filter((item) => item.id !== id)); }, }, ]);
map으로 순회하며 객체 키를 찾고 바꾸고자하는 밸류값만 바꿔주었다.
// 여기 구조분해 할당으로..할수있지않나.? setTodos((prev) => prev.map((item) => { if (item.id === id) { //item.isDone: !isDone 도 아니고 isDone: !isDone도 아닌 이것이다.. return { ...item, isDone: !item.isDone }; } else { return item; } }) );
item.isDone: !isDone
도 아니고 isDone: !isDone
도 아니다.
isDone : !item.isDone
으로 써야 에러가 안난다..
계속 에러가 나서..;; 🔥
+ 얕은복사를 이용하는 다른 방식
const newTodos = [...todos]; const idx = newTodos.findIndex((todo) => todo.id === id); newTodos[idx].isDone = !newTodos[idx].isDone; setTodos(newTodos);
💡 리마인드!
map, filter 메서드 : immutable
push : mutable