MutationCache
MutationCache
是突变的存储。 通常,您不会直接与 MutationCache
交互,而是使用QueryClient
.
import { MutationCache } from "@tanstack/react-query";
const mutationCache = new MutationCache({
onError: (error) => {
console.log(error);
},
onSuccess: (data) => {
console.log(data);
},
});
其可用的方法有:
- getAll
- subscribe
- clear
Options
onError?: (error: unknown, variables: unknown, context: unknown, mutation: Mutation) => void
- 可选的
- 如果某些突变遇到错误,将调用此函数。
onSuccess?: (data: unknown, variables: unknown, context: unknown, mutation: Mutation) => void
- 可选的
- 如果某些突变成功,将调用此函数。
onMutate?: (variables: unknown, mutation: Mutation) => void
- 可选的
- 此函数将在某些突变执行之前被调用。
全局回调
MutationCache
上的onError
,onSuccess
和onMutate
回调可用于在全局级别上处理这些事件。它们与提供给 QueryClient
的defaultOptions
不同,因为:
defaultOptions
可以被每个Mutation
覆盖——将始终调用全局回调。onMutate
不允许返回上下文值。
mutationCache.getAll
getAll
返回缓存中的所有突变。
注意:大多数应用程序通常不需要此功能,但在极少数情况下需要有关突变的更多信息时会派上用场
const mutations = mutationCache.getAll();
Returns
Mutation[]
- 缓存中的突变实例
mutationCache.subscribe
该subscribe
方法可用于订阅整个突变缓存,并被告知对缓存的安全/已知更新,例如突变状态更改或更新、添加或删除的突变。
const callback = (event) => {
console.log(event.type, event.mutation);
};
const unsubscribe = mutationCache.subscribe(callback);
Options
callback: (mutation?: MutationCacheNotifyEvent) => void
- 每当更新时,都会使用突变缓存调用此函数。
Returns
unsubscribe: Function => void
- 此函数将从突变缓存中取消订阅回调。
mutationCache.clear
该clear
方法可用于完全清除缓存并重新开始。
mutationCache.clear();