diff --git a/packages/form-core/src/FormApi.ts b/packages/form-core/src/FormApi.ts index 445e1d4..c231b2d 100644 --- a/packages/form-core/src/FormApi.ts +++ b/packages/form-core/src/FormApi.ts @@ -551,11 +551,12 @@ export class FormApi { } deleteField = >(field: TField) => { - const newState = { ...this.state } - delete newState.values[field as keyof TFormData] - delete newState.fieldMeta[field] - - this.store.setState((_) => newState) + this.store.setState((prev) => { + const newState = { ...prev } + delete newState.values[field as keyof TFormData] + delete newState.fieldMeta[field] + return newState + }) } pushFieldValue = >( diff --git a/packages/form-core/src/tests/FieldApi.spec.ts b/packages/form-core/src/tests/FieldApi.spec.ts index 0196cb8..bd4eedd 100644 --- a/packages/form-core/src/tests/FieldApi.spec.ts +++ b/packages/form-core/src/tests/FieldApi.spec.ts @@ -611,5 +611,7 @@ describe('field api', () => { // Field should have been removed from the form as well expect(form.state.values.name).toBeUndefined() expect(form.state.fieldMeta.name).toBeUndefined() + expect(form.store.state.values.name).toBeUndefined() + expect(form.store.state.fieldMeta.name).toBeUndefined() }) })