Defined in: packages/query-core/src/mutationObserver.ts:38
Observes a single mutation and derives a MutationObserverResult from it. A framework hook like useMutation creates one MutationObserver per hook call, keeps it stable across re-renders, calls setOptions when the options passed to the hook change, subscribes to it to re-render on updates, and reads getCurrentResult() for the value to return. Calling mutate() builds a new underlying Mutation in the MutationCache and executes it.
const observer = new MutationObserver(queryClient, {
mutationFn: (variables: { title: string }) => addPost(variables),
})
const observer = new MutationObserver(queryClient, {
mutationFn: (variables: { title: string }) => addPost(variables),
})
TData = unknown
TError = DefaultError
TVariables = void
TOnMutateResult = unknown
new MutationObserver<TData, TError, TVariables, TOnMutateResult>(client: QueryClient, options: MutationObserverOptions<TData, TError, TVariables, TOnMutateResult>): MutationObserver<TData, TError, TVariables, TOnMutateResult>;
new MutationObserver<TData, TError, TVariables, TOnMutateResult>(client: QueryClient, options: MutationObserverOptions<TData, TError, TVariables, TOnMutateResult>): MutationObserver<TData, TError, TVariables, TOnMutateResult>;
Defined in: packages/query-core/src/mutationObserver.ts:58
MutationObserverOptions<TData, TError, TVariables, TOnMutateResult>
MutationObserver<TData, TError, TVariables, TOnMutateResult>
Subscribable<
MutationObserverListener<TData, TError, TVariables, TOnMutateResult>
>.constructor
Subscribable<
MutationObserverListener<TData, TError, TVariables, TOnMutateResult>
>.constructor
protected listeners: Set<MutationObserverListener<TData, TError, TVariables, TOnMutateResult>>;
protected listeners: Set<MutationObserverListener<TData, TError, TVariables, TOnMutateResult>>;
Defined in: packages/query-core/src/subscribable.ts:2
Subscribable.listeners
Subscribable.listeners
options: MutationObserverOptions<TData, TError, TVariables, TOnMutateResult>;
options: MutationObserverOptions<TData, TError, TVariables, TOnMutateResult>;
Defined in: packages/query-core/src/mutationObserver.ts:46
protected bindMethods(): void;
protected bindMethods(): void;
Defined in: packages/query-core/src/mutationObserver.ts:75
void
getCurrentResult(): MutationObserverResult<TData, TError, TVariables, TOnMutateResult>;
getCurrentResult(): MutationObserverResult<TData, TError, TVariables, TOnMutateResult>;
Defined in: packages/query-core/src/mutationObserver.ts:155
Returns the observer's current result, derived from the observed mutation's state (or the default, idle state if no mutation has been built yet, e.g. before the first mutate() call or after reset()).
MutationObserverResult<TData, TError, TVariables, TOnMutateResult>
hasListeners(): boolean;
hasListeners(): boolean;
Defined in: packages/query-core/src/subscribable.ts:19
boolean
Subscribable.hasListeners
Subscribable.hasListeners
mutate(variables: TVariables, options?: MutateOptions<TData, TError, TVariables, TOnMutateResult>): Promise<TData>;
mutate(variables: TVariables, options?: MutateOptions<TData, TError, TVariables, TOnMutateResult>): Promise<TData>;
Defined in: packages/query-core/src/mutationObserver.ts:207
Builds a new Mutation in the MutationCache using the observer's current options, detaches this observer from any previously observed mutation, attaches it to the new one, and executes it with the given variables.
The optional per-call options (onSuccess/onError/onSettled) are invoked once the mutation settles, in addition to any callbacks defined on the observer's own options.
TVariables
MutateOptions<TData, TError, TVariables, TOnMutateResult>
Promise<TData>
await observer.mutate(
{ title: 'New post' },
{ onSuccess: (data) => console.log(data) },
)
await observer.mutate(
{ title: 'New post' },
{ onSuccess: (data) => console.log(data) },
)
protected onSubscribe(): void;
protected onSubscribe(): void;
Defined in: packages/query-core/src/mutationObserver.ts:127
void
Subscribable.onSubscribe
Subscribable.onSubscribe
protected onUnsubscribe(): void;
protected onUnsubscribe(): void;
Defined in: packages/query-core/src/mutationObserver.ts:135
void
Subscribable.onUnsubscribe
Subscribable.onUnsubscribe
reset(): void;
reset(): void;
Defined in: packages/query-core/src/mutationObserver.ts:180
Detaches the observer from the mutation it is currently observing (if any) and resets the observed result back to its default, idle state.
This does not cancel an in-flight mutation; the mutation itself keeps running to completion and its own callbacks still fire, but this observer stops reflecting its state and a subsequent mutate() call will build a brand new mutation.
void
observer.reset()
observer.reset()
setOptions(options: MutationObserverOptions<TData, TError, TVariables, TOnMutateResult>): void;
setOptions(options: MutationObserverOptions<TData, TError, TVariables, TOnMutateResult>): void;
Defined in: packages/query-core/src/mutationObserver.ts:96
Updates the observer's options.
If the new mutationKey differs from the previous one (and both were defined), the observer is reset, detaching it from the mutation it was observing. Otherwise, if the currently observed mutation is still pending, its options are updated in place as well.
MutationObserverOptions<TData, TError, TVariables, TOnMutateResult>
void
observer.setOptions({
mutationFn: (variables: { title: string }) => addPost(variables),
onSuccess: (data) => console.log(data),
})
observer.setOptions({
mutationFn: (variables: { title: string }) => addPost(variables),
onSuccess: (data) => console.log(data),
})
subscribe(listener: MutationObserverListener): () => void;
subscribe(listener: MutationObserverListener): () => void;
Defined in: packages/query-core/src/subscribable.ts:8
MutationObserverListener
(): void;
(): void;
void
Subscribable.subscribe
Subscribable.subscribe