# FieldGroupApi

# Class: FieldGroupApi\<TFormData, TFieldGroupData, TFields, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta\>

Defined in: [packages/form-core/src/FieldGroupApi.ts:113](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldGroupApi.ts#L113)

## Type Parameters

### TFormData

`TFormData`

### TFieldGroupData

`TFieldGroupData`

### TFields

`TFields` *extends* 
  \| [`DeepKeysOfType`](../type-aliases/DeepKeysOfType.md)\<`TFormData`, `TFieldGroupData` \| `null` \| `undefined`\>
  \| [`FieldsMap`](../type-aliases/FieldsMap.md)\<`TFormData`, `TFieldGroupData`\>

### TOnMount

`TOnMount` *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\>

### TOnChange

`TOnChange` *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\>

### TOnChangeAsync

`TOnChangeAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\>

### TOnBlur

`TOnBlur` *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\>

### TOnBlurAsync

`TOnBlurAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\>

### TOnSubmit

`TOnSubmit` *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\>

### TOnSubmitAsync

`TOnSubmitAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\>

### TOnDynamic

`TOnDynamic` *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\>

### TOnDynamicAsync

`TOnDynamicAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\>

### TOnServer

`TOnServer` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\>

### TSubmitMeta

`TSubmitMeta` = `never`

## Constructors

### Constructor

```ts
new FieldGroupApi<TFormData, TFieldGroupData, TFields, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta>(opts): FieldGroupApi<TFormData, TFieldGroupData, TFields, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta>;
```

Defined in: [packages/form-core/src/FieldGroupApi.ts:238](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldGroupApi.ts#L238)

Constructs a new `FieldGroupApi` instance with the given form options.

#### Parameters

##### opts

[`FieldGroupOptions`](../interfaces/FieldGroupOptions.md)\<`TFormData`, `TFieldGroupData`, `TFields`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`, `TOnServer`, `TSubmitMeta`\>

#### Returns

`FieldGroupApi`\<`TFormData`, `TFieldGroupData`, `TFields`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`, `TOnServer`, `TSubmitMeta`\>

## Properties

### fieldsMap

```ts
readonly fieldsMap: TFields;
```

Defined in: [packages/form-core/src/FieldGroupApi.ts:149](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldGroupApi.ts#L149)

***

### form

```ts
readonly form: FormApi<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta>;
```

Defined in: [packages/form-core/src/FieldGroupApi.ts:134](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldGroupApi.ts#L134)

The form that called this field group.

***

### store

```ts
store: ReadonlyStore<FieldGroupState<TFieldGroupData>>;
```

Defined in: [packages/form-core/src/FieldGroupApi.ts:229](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldGroupApi.ts#L229)

## Accessors

### state

#### Get Signature

```ts
get state(): FieldGroupState<TFieldGroupData>;
```

Defined in: [packages/form-core/src/FieldGroupApi.ts:231](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldGroupApi.ts#L231)

##### Returns

[`FieldGroupState`](../interfaces/FieldGroupState.md)\<`TFieldGroupData`\>

## Methods

### clearFieldValues()

```ts
clearFieldValues<TField>(field, opts?): void;
```

Defined in: [packages/form-core/src/FieldGroupApi.ts:507](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldGroupApi.ts#L507)

#### Type Parameters

##### TField

`TField` *extends* `string`

#### Parameters

##### field

`TField`

##### opts?

`UpdateMetaOptions`

#### Returns

`void`

#### Implementation of

```ts
FieldManipulator.clearFieldValues
```

***

### deleteField()

```ts
deleteField<TField>(field): void;
```

Defined in: [packages/form-core/src/FieldGroupApi.ts:394](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldGroupApi.ts#L394)

Delete a field and its subfields.

#### Type Parameters

##### TField

`TField` *extends* `string`

#### Parameters

##### field

`TField`

#### Returns

`void`

#### Implementation of

```ts
FieldManipulator.deleteField
```

***

### getFieldMeta()

```ts
getFieldMeta<TField>(field): AnyFieldMeta | undefined;
```

Defined in: [packages/form-core/src/FieldGroupApi.ts:362](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldGroupApi.ts#L362)

Gets the metadata of the specified field.

#### Type Parameters

##### TField

`TField` *extends* `string`

#### Parameters

##### field

`TField`

#### Returns

[`AnyFieldMeta`](../type-aliases/AnyFieldMeta.md) \| `undefined`

#### Implementation of

```ts
FieldManipulator.getFieldMeta
```

***

### getFieldValue()

```ts
getFieldValue<TField>(field): DeepValue<TFieldGroupData, TField>;
```

Defined in: [packages/form-core/src/FieldGroupApi.ts:350](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldGroupApi.ts#L350)

Gets the value of the specified field.

#### Type Parameters

##### TField

`TField` *extends* `string`

#### Parameters

##### field

`TField`

#### Returns

[`DeepValue`](../type-aliases/DeepValue.md)\<`TFieldGroupData`, `TField`\>

#### Implementation of

```ts
FieldManipulator.getFieldValue
```

***

### handleSubmit()

#### Call Signature

```ts
handleSubmit(): Promise<void>;
```

Defined in: [packages/form-core/src/FieldGroupApi.ts:340](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldGroupApi.ts#L340)

Handles the form submission, performs validation, and calls the appropriate onSubmit or onSubmitInvalid callbacks.

##### Returns

`Promise`\<`void`\>

##### Implementation of

```ts
FieldManipulator.handleSubmit
```

#### Call Signature

```ts
handleSubmit(submitMeta): Promise<void>;
```

Defined in: [packages/form-core/src/FieldGroupApi.ts:341](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldGroupApi.ts#L341)

Handles the form submission, performs validation, and calls the appropriate onSubmit or onSubmitInvalid callbacks.

##### Parameters

###### submitMeta

`TSubmitMeta`

##### Returns

`Promise`\<`void`\>

##### Implementation of

```ts
FieldManipulator.handleSubmit
```

***

### insertFieldValue()

```ts
insertFieldValue<TField>(
   field, 
   index, 
   value, 
opts?): Promise<void>;
```

Defined in: [packages/form-core/src/FieldGroupApi.ts:419](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldGroupApi.ts#L419)

Insert a value into an array field at the specified index.

#### Type Parameters

##### TField

`TField` *extends* `string`

#### Parameters

##### field

`TField`

##### index

`number`

##### value

[`DeepValue`](../type-aliases/DeepValue.md)\<`TFieldGroupData`, `TField`\> *extends* `any`[] ? `any`[] & [`DeepValue`](../type-aliases/DeepValue.md)\<`TFieldGroupData`, `TField`\>\[`number`\] : `never`

##### opts?

`UpdateMetaOptions`

#### Returns

`Promise`\<`void`\>

#### Implementation of

```ts
FieldManipulator.insertFieldValue
```

***

### mount()

```ts
mount(): () => void;
```

Defined in: [packages/form-core/src/FieldGroupApi.ts:306](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldGroupApi.ts#L306)

Mounts the field group instance to listen to value changes.

TODO: Remove

#### Returns

```ts
(): void;
```

##### Returns

`void`

***

### moveFieldValues()

```ts
moveFieldValues<TField>(
   field, 
   index1, 
   index2, 
   opts?): void;
```

Defined in: [packages/form-core/src/FieldGroupApi.ts:493](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldGroupApi.ts#L493)

Moves the value at the first specified index to the second specified index within an array field.

#### Type Parameters

##### TField

`TField` *extends* `string`

#### Parameters

##### field

`TField`

##### index1

`number`

##### index2

`number`

##### opts?

`UpdateMetaOptions`

#### Returns

`void`

#### Implementation of

```ts
FieldManipulator.moveFieldValues
```

***

### pushFieldValue()

```ts
pushFieldValue<TField>(
   field, 
   value, 
   opts?): void;
```

Defined in: [packages/form-core/src/FieldGroupApi.ts:401](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldGroupApi.ts#L401)

Pushes a value into an array field.

#### Type Parameters

##### TField

`TField` *extends* `string`

#### Parameters

##### field

`TField`

##### value

[`DeepValue`](../type-aliases/DeepValue.md)\<`TFieldGroupData`, `TField`\> *extends* `any`[] ? `any`[] & [`DeepValue`](../type-aliases/DeepValue.md)\<`TFieldGroupData`, `TField`\>\[`number`\] : `never`

##### opts?

`UpdateMetaOptions`

#### Returns

`void`

#### Implementation of

```ts
FieldManipulator.pushFieldValue
```

***

### removeFieldValue()

```ts
removeFieldValue<TField>(
   field, 
   index, 
opts?): Promise<void>;
```

Defined in: [packages/form-core/src/FieldGroupApi.ts:463](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldGroupApi.ts#L463)

Removes a value from an array field at the specified index.

#### Type Parameters

##### TField

`TField` *extends* `string`

#### Parameters

##### field

`TField`

##### index

`number`

##### opts?

`UpdateMetaOptions`

#### Returns

`Promise`\<`void`\>

#### Implementation of

```ts
FieldManipulator.removeFieldValue
```

***

### replaceFieldValue()

```ts
replaceFieldValue<TField>(
   field, 
   index, 
   value, 
opts?): Promise<void>;
```

Defined in: [packages/form-core/src/FieldGroupApi.ts:441](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldGroupApi.ts#L441)

Replaces a value into an array field at the specified index.

#### Type Parameters

##### TField

`TField` *extends* `string`

#### Parameters

##### field

`TField`

##### index

`number`

##### value

[`DeepValue`](../type-aliases/DeepValue.md)\<`TFieldGroupData`, `TField`\> *extends* `any`[] ? `any`[] & [`DeepValue`](../type-aliases/DeepValue.md)\<`TFieldGroupData`, `TField`\>\[`number`\] : `never`

##### opts?

`UpdateMetaOptions`

#### Returns

`Promise`\<`void`\>

#### Implementation of

```ts
FieldManipulator.replaceFieldValue
```

***

### resetField()

```ts
resetField<TField>(field): void;
```

Defined in: [packages/form-core/src/FieldGroupApi.ts:517](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldGroupApi.ts#L517)

Resets the field value and meta to default state

#### Type Parameters

##### TField

`TField` *extends* `string`

#### Parameters

##### field

`TField`

#### Returns

`void`

#### Implementation of

```ts
FieldManipulator.resetField
```

***

### setFieldMeta()

```ts
setFieldMeta<TField>(field, updater): void;
```

Defined in: [packages/form-core/src/FieldGroupApi.ts:369](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldGroupApi.ts#L369)

Updates the metadata of the specified field.

#### Type Parameters

##### TField

`TField` *extends* `string`

#### Parameters

##### field

`TField`

##### updater

[`Updater`](../type-aliases/Updater.md)\<[`AnyFieldMetaBase`](../type-aliases/AnyFieldMetaBase.md)\>

#### Returns

`void`

#### Implementation of

```ts
FieldManipulator.setFieldMeta
```

***

### setFieldValue()

```ts
setFieldValue<TField>(
   field, 
   updater, 
   opts?): void;
```

Defined in: [packages/form-core/src/FieldGroupApi.ts:379](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldGroupApi.ts#L379)

Sets the value of the specified field and optionally updates the touched state.

#### Type Parameters

##### TField

`TField` *extends* `string`

#### Parameters

##### field

`TField`

##### updater

[`Updater`](../type-aliases/Updater.md)\<[`DeepValue`](../type-aliases/DeepValue.md)\<`TFieldGroupData`, `TField`\>\>

##### opts?

`UpdateMetaOptions`

#### Returns

`void`

#### Implementation of

```ts
FieldManipulator.setFieldValue
```

***

### swapFieldValues()

```ts
swapFieldValues<TField>(
   field, 
   index1, 
   index2, 
   opts?): void;
```

Defined in: [packages/form-core/src/FieldGroupApi.ts:476](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldGroupApi.ts#L476)

Swaps the values at the specified indices within an array field.

#### Type Parameters

##### TField

`TField` *extends* `string`

#### Parameters

##### field

`TField`

##### index1

`number`

##### index2

`number`

##### opts?

`UpdateMetaOptions`

#### Returns

`void`

#### Implementation of

```ts
FieldManipulator.swapFieldValues
```

***

### validateAllFields()

```ts
validateAllFields(cause): Promise<unknown[]>;
```

Defined in: [packages/form-core/src/FieldGroupApi.ts:521](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldGroupApi.ts#L521)

#### Parameters

##### cause

`ValidationCause`

#### Returns

`Promise`\<`unknown`[]\>

#### Implementation of

```ts
FieldManipulator.validateAllFields
```

***

### validateArrayFieldsStartingFrom()

```ts
validateArrayFieldsStartingFrom<TField>(
   field, 
   index, 
cause): Promise<unknown[]>;
```

Defined in: [packages/form-core/src/FieldGroupApi.ts:313](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldGroupApi.ts#L313)

Validates the children of a specified array in the form starting from a given index until the end using the correct handlers for a given validation type.

#### Type Parameters

##### TField

`TField` *extends* `string`

#### Parameters

##### field

`TField`

##### index

`number`

##### cause

`ValidationCause`

#### Returns

`Promise`\<`unknown`[]\>

#### Implementation of

```ts
FieldManipulator.validateArrayFieldsStartingFrom
```

***

### validateField()

```ts
validateField<TField>(field, cause): any[] | Promise<any[]>;
```

Defined in: [packages/form-core/src/FieldGroupApi.ts:330](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldGroupApi.ts#L330)

Validates a specified field in the form using the correct handlers for a given validation type.

#### Type Parameters

##### TField

`TField` *extends* `string`

#### Parameters

##### field

`TField`

##### cause

`ValidationCause`

#### Returns

`any`[] \| `Promise`\<`any`[]\>

#### Implementation of

```ts
FieldManipulator.validateField
```
