# useReactorMutation

> **useReactorMutation**\<`Service`, `Method`, `Transform`, `TOnMutateResult`\>(`__namedParameters`): [`UseReactorMutationResult`](https://ic-reactor.b3pay.net/v3/libs/type-aliases/usereactormutationresult/)\<`Service`, `Method`, `Transform`, `TOnMutateResult`\>

Defined in: [react/src/hooks/useActorMutation.ts:108](https://github.com/B3Pay/ic-reactor/blob/70bedf3c8779611a3b35710510442dee7f630b87/packages/react/src/hooks/useActorMutation.ts#L108)

Hook for executing mutation calls on a canister.
Use this for component-level mutation flows.
For non-React usage, prefer `createMutation(...).execute(args)`.

## Type Parameters

### Service

`Service`

### Method

`Method` *extends* `string`

### Transform

`Transform` *extends* keyof [`TransformArgsRegistry`](https://ic-reactor.b3pay.net/v3/libs/interfaces/transformargsregistry/)\<`unknown`\> = `"candid"`

### TOnMutateResult

`TOnMutateResult` = `unknown`

## Parameters

### \_\_namedParameters

[`UseReactorMutationParameters`](https://ic-reactor.b3pay.net/v3/libs/interfaces/usereactormutationparameters/)\<`Service`, `Method`, `Transform`, `TOnMutateResult`\>

## Returns

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

## Examples

```ts
const { mutate, isPending } = useActorMutation({
  reactor,
  functionName: "transfer",
  onSuccess: () => console.log("Success!"),
  onCanisterError: (err) => console.error("Canister Err:", err.code),
})
```

```ts
const transferMutation = createMutation(reactor, {
  functionName: "transfer",
  onCanisterError: (err) => console.error(err.code),
})

// Non-React execution path
await transferMutation.execute([{ to: "aaaaa-aa", amount: "100" }])
```