> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bijection.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Interface: ReactOperation<O>

> A reusable command.

[react](/api/modules/react).ReactOperation

A reusable command. Each explicit invocation captures one immutable intention.

## Type parameters

| Name | Type |
| :- | :- |
| `O` | extends [`PublicOperation`](/api/modules/react#publicoperation) |

## Callable

### ReactOperation

▸ **ReactOperation**(`payload`, `options?`): `Promise`\<[`RequestSubmission`](/api/modules/browser#requestsubmission)\<`O`\[`"_returnType"`]>>

#### Parameters

| Name | Type |
| :- | :- |
| `payload` | [`OperationPayload`](/api/modules/browser#operationpayload)\<`O`\[`"_args"`]> |
| `options?` | [`RequestCaptureOptions`](/api/modules/requests#requestcaptureoptions) & `Pick`\<[`RequestSubmissionOptions`](/api/modules/browser#requestsubmissionoptions), `"signal"` \| `"proposalId"`> |

#### Returns

`Promise`\<[`RequestSubmission`](/api/modules/browser#requestsubmission)\<`O`\[`"_returnType"`]>>

## Methods

### withOptimisticUpdate

▸ **withOptimisticUpdate**\<`T`>(`update`): [`ReactOperation`](/api/interfaces/react.ReactOperation)\<`O`>

#### Type parameters

| Name | Type |
| :- | :- |
| `T` | extends [`OperationOptimisticUpdate`](/api/modules/requests#operationoptimisticupdate)\<`O`\[`"_args"`]> |

#### Parameters

| Name | Type |
| :- | :- |
| `update` | `T` & `ReturnType`\<`T`> extends `Promise`\<`any`> ? `"Optimistic update handlers must be synchronous"` : \{} |

#### Returns

[`ReactOperation`](/api/interfaces/react.ReactOperation)\<`O`>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.