중간발표
앞으로 해야할 일 정하기
아직도 useQuery에 대한 이해도가 떨어져서 헤매고 있는 나.....😩
건의 게시판을 만들었는데 게시글 쓰기를 하면
DB에 데이터는 들어가는데 화면과 동기화가 되지않고 새로고침 해야만 했다
이유는 invalidate 를 하지 않고 그냥 냅다 DB에 저장하는 함수만 썼기 때문!
왜 안되지 고민하다가 invalidate
를 해야한다는 사실을 알게 됨!
왜냐하면 기존의 데이터가 stale 해졌다는 걸 알려줘야 새로 refetch를 하기 때문!
이게 헷갈렸던 이유는 querykey 때문인데
querykey 배열에 들어가는 데이터가 바뀌면 새로 fetch가 되는 것과
invalidate 될 때의 상황이 헷갈렸다 🥴
결론은
querykey에 들어가는 데이터가 변하여 다시 불러오는 것은
기존의 것과 별개의 데이터를 불러오는 것이고
invalidate는 기존의 데이터가 오래됐으니(stale)
fresh한 것으로 다시 불러오라는 것!
남들 다 쉽고 짱 편하다는 query.. 나만 맨날 어려워하는중..😭