# MutationHookOptions

Defined in: [react/src/types.ts:425](https://github.com/B3Pay/ic-reactor/blob/70bedf3c8779611a3b35710510442dee7f630b87/packages/react/src/types.ts#L425)

Options for useMutation hook.
Extends React Query's UseMutationOptions with invalidateQueries support.

## Extends

- `Omit`\<`UseMutationOptions`\<[`ReactorReturnOk`](https://ic-reactor.b3pay.net/v3/libs/type-aliases/reactorreturnok/)\<`Service`, `Method`, `Transform`\>, [`ReactorReturnErr`](https://ic-reactor.b3pay.net/v3/libs/type-aliases/reactorreturnerr/)\<`Service`, `Method`, `Transform`\>, [`ReactorArgs`](https://ic-reactor.b3pay.net/v3/libs/type-aliases/reactorargs/)\<`Service`, `Method`, `Transform`\>, `TOnMutateResult`\>, `"mutationFn"`\>

## Type Parameters

### Service

`Service` = [`BaseActor`](https://ic-reactor.b3pay.net/v3/libs/type-aliases/baseactor/)

### Method

`Method` *extends* [`FunctionName`](https://ic-reactor.b3pay.net/v3/libs/type-aliases/functionname/)\<`Service`\> = [`FunctionName`](https://ic-reactor.b3pay.net/v3/libs/type-aliases/functionname/)\<`Service`\>

### Transform

`Transform` *extends* [`TransformKey`](https://ic-reactor.b3pay.net/v3/libs/type-aliases/transformkey/) = `"candid"`

### TOnMutateResult

`TOnMutateResult` = `unknown`

The value `onMutate` returns, which `onSuccess`,
`onError` and `onSettled` receive. TypeScript infers it from `onMutate`.

## Properties

### invalidateQueries?

> `optional` **invalidateQueries?**: (readonly `unknown`[] \| `undefined`)[]

Defined in: [react/src/types.ts:449](https://github.com/B3Pay/ic-reactor/blob/70bedf3c8779611a3b35710510442dee7f630b87/packages/react/src/types.ts#L449)

Query keys to invalidate upon successful mutation.
Use query.getQueryKey() to get the key from a query result.

#### Example

```ts
const balanceQuery = getIcpBalance(account)
useMutation({
  invalidateQueries: [balanceQuery.getQueryKey()],
})
```

***

### onCanisterError?

> `optional` **onCanisterError?**: (`error`, `variables`) => `void`

Defined in: [react/src/types.ts:457](https://github.com/B3Pay/ic-reactor/blob/70bedf3c8779611a3b35710510442dee7f630b87/packages/react/src/types.ts#L457)

Callback for canister-level business logic errors.
Called when the canister returns a Result { Err: E } variant.

#### Parameters

##### error

[`CanisterError`](https://ic-reactor.b3pay.net/v3/libs/classes/canistererror/)\<[`TransformReturnRegistry`](https://ic-reactor.b3pay.net/v3/libs/interfaces/transformreturnregistry/)\<[`ErrResult`](https://ic-reactor.b3pay.net/v3/libs/type-aliases/errresult/)\<[`ActorMethodReturnType`](https://ic-reactor.b3pay.net/v3/libs/type-aliases/actormethodreturntype/)\<`Service`\[`Method`\]\>\>, `Service`\>\[`Transform`\]\>

The CanisterError containing the typed error value

##### variables

[`ReactorArgs`](https://ic-reactor.b3pay.net/v3/libs/type-aliases/reactorargs/)\<`Service`, `Method`, `Transform`\>

The arguments passed to the mutation

#### Returns

`void`