Skip to content

Latest commit

 

History

History
51 lines (35 loc) · 6.04 KB

MutationObserverOptions.md

File metadata and controls

51 lines (35 loc) · 6.04 KB
id MutationObserverOptions
title MutationObserverOptions

Defined in: packages/query-core/src/types.ts:1992

The options of a MutationObserver, and of the hooks built on it like useMutation: the MutationOptions, plus throwOnError.

Extends

Type Parameters

TData

TData = unknown

TError

TError = DefaultError

TVariables

TVariables = void

TOnMutateResult

TOnMutateResult = unknown

Properties

Property Type Default value Description
gcTime? number undefined The 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 Additional payload to be stored on the mutation cache entry. Use it to pass information that can be read wherever the mutation is available, such as the onError and onSuccess callbacks of the MutationCache.
mutationFn? (variables: TVariables, context: MutationFunctionContext) => Promise<TData> undefined The function that performs the asynchronous task this mutation runs. Required, unless a default mutation function has been set for the matching mutationKey via queryClient.setMutationDefaults. Receives the variables passed to mutate, and a MutationFunctionContext holding the QueryClient, the mutationKey and meta. Must return a promise that resolves the mutation's data.
mutationKey? readonly unknown[] undefined The key to use for this mutation. Optional, but required to inherit defaults registered with queryClient.setMutationDefaults, and to match this mutation with useMutationState or queryClient.isMutating.
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) => unknown undefined This function fires when the mutation encounters an error, and is passed the error. If a promise is returned, it is awaited before onSettled runs.
onMutate? (variables: TVariables, context: MutationFunctionContext) => TOnMutateResult | Promise<TOnMutateResult> undefined This function fires before the mutation function runs, and receives the same variables. Useful for optimistic updates applied in the hope that the mutation succeeds. The value it returns is passed to onSuccess, onError and onSettled as onMutateResult, which is where an optimistic update is usually rolled back. If a promise is returned, it is awaited before the mutation function runs.
onSettled? (data: TData | undefined, error: TError | null, variables: TVariables, onMutateResult: TOnMutateResult | undefined, context: MutationFunctionContext) => unknown undefined This function fires when the mutation either succeeds or errors, and is passed either the data or the error. If a promise is returned, it is awaited before the mutation settles.
onSuccess? (data: TData, variables: TVariables, onMutateResult: TOnMutateResult, context: MutationFunctionContext) => unknown undefined This function fires when the mutation succeeds, and is passed the mutation's result. If a promise is returned, it is awaited before onSettled runs.
retry? | number | false | true | ((failureCount: number, error: TError) => boolean) 0 If 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) => number) undefined This 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? MutationScope undefined Controls whether this mutation runs alongside others or waits its turn. Mutations sharing the same scope.id run serially, in the order they were started. Without a scope, a mutation runs as soon as it is triggered.
throwOnError? boolean | ((error: TError) => boolean) false Whether 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).