TanStack
API Reference

UseMutationOptions

Defined in: packages/preact-query/src/types.ts:411

The options accepted by useMutation. Same as MutationObserverOptions from @tanstack/query-core, minus the internal _defaulted flag.

Extends

Type Parameters

TData

TData = unknown

The type your mutation function resolves to.

TError

TError = DefaultError

The type of errors your mutation function may throw.

TVariables

TVariables = void

The type of the variable passed to mutate/mutateAsync.

TOnMutateResult

TOnMutateResult = unknown

The type returned by onMutate, passed to onSuccess/onError/onSettled as their onMutateResult parameter — useful for optimistic-update rollback data.

Properties

PropertyTypeDefault valueDescription
gcTime?numberundefinedThe time in milliseconds that an unused/inactive mutation remains in memory before it is garbage collected. Defaults to 5 * 60 * 1000 (5 minutes), or Infinity during SSR.
meta?Record<string, unknown>undefined-
mutationFn?(variables: TVariables, context: MutationFunctionContext) => Promise<TData>undefined-
mutationKey?readonly unknown[]undefined-
networkMode?"online" | "always" | "offlineFirst"'online'Controls whether a mutation is allowed to run based on the current network connectivity. See Network Mode for more information.
onError?(error: TError, variables: TVariables, onMutateResult: TOnMutateResult | undefined, context: MutationFunctionContext) => unknownundefined-
onMutate?(variables: TVariables, context: MutationFunctionContext) => TOnMutateResult | Promise<TOnMutateResult>undefined-
onSettled?(data: TData | undefined, error: TError | null, variables: TVariables, onMutateResult: TOnMutateResult | undefined, context: MutationFunctionContext) => unknownundefined-
onSuccess?(data: TData, variables: TVariables, onMutateResult: TOnMutateResult, context: MutationFunctionContext) => unknownundefined-
retry?| number | false | true | (failureCount: number, error: TError) => boolean0If false, failed mutations will not retry by default. If true, failed mutations will retry infinitely. If set to an integer number, e.g. 3, failed mutations will retry until the failed mutation count meets that number. If set to a function (failureCount, error) => boolean failed mutations will retry until the function returns false.
retryDelay?number | (failureCount: number, error: TError) => numberundefinedThis function receives a retryAttempt integer and the actual Error and returns the delay to apply before the next attempt in milliseconds. Defaults to a function that applies exponential backoff, capped at 30 seconds.
scope?MutationScopeundefined-
throwOnError?boolean | (error: TError) => booleanfalseWhether errors should be thrown instead of setting the error property. If set to true, all errors will be thrown to the nearest error boundary. If set to a function, it will be passed the error and should return a boolean indicating whether to throw the error (true) or return it as state (false).