MutationCache
MutationCache는 뮤테이션을 위한 저장소입니다.
일반적으로 MutationCache와 직접 상호 작용하지 않고 대신 QueryClient를 사용합니다.
import { MutationCache } from '@tanstack/react-query'
const mutationCache = new MutationCache({
onError: (error) => {
console.log(error)
},
onSuccess: (data) => {
console.log(data)
},
})
사용 가능한 메서드는 다음과 같습니다:
옵션
onError?: (error: unknown, variables: unknown, onMutateResult: unknown, mutation: Mutation, mutationFnContext: MutationFunctionContext) => Promise<unknown> | unknown- 선택 사항
- 일부 뮤테이션에서 오류가 발생하면 이 함수가 호출됩니다.
- 여기에서 Promise를 반환하면 완료될 때까지 기다립니다
onSuccess?: (data: unknown, variables: unknown, onMutateResult: unknown, mutation: Mutation, mutationFnContext: MutationFunctionContext) => Promise<unknown> | unknown- 선택 사항
- 일부 뮤테이션이 성공하면 이 함수가 호출됩니다.
- 여기에서 Promise를 반환하면 완료될 때까지 기다립니다
onSettled?: (data: unknown | undefined, error: unknown | null, variables: unknown, onMutateResult: unknown, mutation: Mutation, mutationFnContext: MutationFunctionContext) => Promise<unknown> | unknown- 선택 사항
- 일부 뮤테이션이 완료되면(성공하거나 오류가 발생한 경우 모두) 이 함수가 호출됩니다.
- 여기에서 Promise를 반환하면 완료될 때까지 기다립니다
onMutate?: (variables: unknown, mutation: Mutation, mutationFnContext: MutationFunctionContext) => Promise<unknown> | unknown- 선택 사항
- 이 함수는 일부 뮤테이션이 실행되기 전에 호출됩니다.
- 여기에서 Promise를 반환하면 완료될 때까지 기다립니다
전역 콜백
MutationCache의 onError, onSuccess, onSettled 및 onMutate 콜백을 사용하여 이러한 이벤트를 전역 수준에서 처리할 수 있습니다. 이 콜백들은 다음과 같은 이유로 QueryClient에 제공되는 defaultOptions와 다릅니다:
defaultOptions는 각 Mutation에서 재정의할 수 있지만, 전역 콜백은 항상 호출됩니다.onMutate는 결과 반환을 허용하지 않습니다.
mutationCache.getAll
getAll은 캐시 내의 모든 뮤테이션을 반환합니다.
참고: 대부분의 애플리케이션에서는 일반적으로 필요하지 않지만, 드문 상황에서 뮤테이션에 관한 추가 정보가 필요할 때 유용할 수 있습니다
const mutations = mutationCache.getAll()
반환값
Mutation[]- 캐시의 Mutation 인스턴스
mutationCache.subscribe
subscribe 메서드는 뮤테이션 캐시 전체를 구독하고, 뮤테이션 상태가 변경되거나 뮤테이션이 업데이트, 추가 또는 제거되는 것과 같은 캐시의 안전하고 알려진 업데이트를 통지받는 데 사용할 수 있습니다.
const callback = (event) => {
console.log(event.type, event.mutation)
}
const unsubscribe = mutationCache.subscribe(callback)
옵션
callback: (mutation?: MutationCacheNotifyEvent) => void- 이 함수는 뮤테이션 캐시가 업데이트될 때마다 해당 캐시와 함께 호출됩니다.
반환값
unsubscribe: Function => void- 이 함수는 뮤테이션 캐시에서 콜백의 구독을 해제합니다.
mutationCache.clear
clear 메서드를 사용하면 캐시를 완전히 비우고 새로 시작할 수 있습니다.
mutationCache.clear()