rollback
할 것임.query에 대해 했던 것과 같은 방법으로,
mutation에 대한 전역 fetch 지표
랑 error handling
을 설정하자.
onError
콜백을 설정할 것이다. (query client
의 mutationsCache
속성을 이용) useIsMutating
을 사용하자. (fetching 상태를 나타내는useIsFetching
과 유사하지만 현재 해결되지 않은 변형 호출이 있는지 여부 알려줌)Loading
컴포넌트를 update해서 isMutating
상태인지, isFetching
상태인지 알려줌.
현재 이 부분에 변형 캐시
(mutation cache
)를 추가해보자.
MutationCache
를 import 하자.
mutationCache
추가해준 코드.
이 부분 기억나는가?
우리는 오류가 data를 가져올 수 없다고 설정했었다.
이 부분을 삭제하고,
제목을 매개변수로 만들었다.
actionType이 'query'면 'fetch' 가 action 상수로 들어가고, 'mutation'이면 'update'가 들어간다.
이런식으로 코드를 변경해준다.
action type이 query인지, mutation인지에 따라 메시지가 다르게 나온다.
=> id와 함께 가지고 있는(id가 정해져있으니까 이로 생기는 중복이 있을 것으로 추측) 중복을 제거하는 이점이 있음
=> 특정 변형에 대해 하나 이상의 에러를 받지 않을 것임.
변형의 fetching 상태에 대해서는 Loading 컴포넌트
를 살펴보자.
useIsMutating
을 가져오자.
fetching 중이거나, mutating 중이면, '로딩 스피너'를 표시("inherit")