diff --git a/src/useForm.ts b/src/useForm.ts index 895da920..4f83a6c2 100644 --- a/src/useForm.ts +++ b/src/useForm.ts @@ -500,7 +500,7 @@ export class FormStore { const mergedPreserve = preserve !== undefined ? preserve : this.preserve; if (mergedPreserve === false && !isListField) { const namePath = entity.getNamePath(); - if (this.getFieldValue(namePath) !== undefined) { + if (namePath.length && this.getFieldValue(namePath) !== undefined) { this.store = setValue(this.store, namePath, undefined); } } diff --git a/tests/preserve.test.tsx b/tests/preserve.test.tsx index f3a18293..7c5feba6 100644 --- a/tests/preserve.test.tsx +++ b/tests/preserve.test.tsx @@ -137,5 +137,35 @@ describe('Form.Preserve', () => { errorSpy.mockRestore(); }); + + it('nest render props should not clean full store', () => { + let form: FormInstance; + + const wrapper = mount( +