boolean Update
boolean 을 변수에 대입하여 쓸 경우가 많다.
이 때 그 객체 속의 데이터 값을 찾아서 ! 바꿔줄 수 있다.(Read -> update)
const changeIsDone = async (id) => {
// const tasks = tasklist.map((task) => {
// if (task.id === id) {
// return {
// ...task,
// isDone: !task.isDone,
// };
// } else {
// return {
// ...task,
// };
// }
// });
// setTasklist(tasks);
const snapshot = await getDoc(doc(dbService, "Tasks", id)); // 하나의 doc를 가져옴.
await updateDoc(doc(dbService, "Tasks", id), {
isDone: !snapshot.data().isDone,
});
};
위의 주석은
tasks 를 .map 메소드로 id 값이 같을 경우 isDone을 !하고 새로운 배열을 만들어 return 하였다.
하지만 updateDoc 의 값을 역변환 하기 위해선 굳이 .map 을 쓰지 않아도 되었다.
getDoc 을 이용하여 id 가 같은 객체를 뽑아와 isDone의 값에 ! 역을 취해주면 되었다.
더 좋은 방법이 있을 거 같으니 일단 여기까지 하겠다.