diff --git a/packages/form-render-mobile/src/models/useForm.ts b/packages/form-render-mobile/src/models/useForm.ts index 07dbde683..f8dc2cbd6 100644 --- a/packages/form-render-mobile/src/models/useForm.ts +++ b/packages/form-render-mobile/src/models/useForm.ts @@ -285,12 +285,18 @@ const useForm = () => { } // 触发表单验证 - xform.validateFields = (pathList?: string[]) => { + xform.validateFields = async (pathList?: string[]) => { const nameList = (pathList || []).map(path => getFieldName(path)); - if (nameList.length > 0) { - return validateFields(nameList); + let values = await ( + nameList.length > 0 ? validateFields(nameList) : validateFields() + ); + // 参考 getValues的步骤 + const { removeHiddenData } = storeRef.current?.getState() || {}; + if (removeHiddenData) { + values = filterValuesHidden(values, flattenSchemaRef.current); } - return validateFields(); + values = filterValuesUndefined(values); + return parseValuesToBind(values, flattenSchemaRef.current); } // 获取扁平化 schema diff --git a/packages/form-render/src/models/useForm.ts b/packages/form-render/src/models/useForm.ts index 5d5b45c15..e8e602982 100644 --- a/packages/form-render/src/models/useForm.ts +++ b/packages/form-render/src/models/useForm.ts @@ -326,14 +326,19 @@ const useForm = () => { } // 触发表单验证 - xform.validateFields = (pathList?: string[], config?: object) => { + xform.validateFields = async (pathList?: string[], config?: object) => { const nameList = (pathList || []).map(path => getFieldName(path)); - if (nameList.length > 0) { - return validateFields(nameList, config); + let values = await ( + nameList.length > 0 ? validateFields(nameList, config) : validateFields() + ); + // 参考 getValues的步骤 + const { removeHiddenData } = storeRef.current?.getState() || {}; + if (removeHiddenData) { + values = filterValuesHidden(values, flattenSchemaRef.current); } - return validateFields(); - }; - + values = filterValuesUndefined(values); + return parseValuesToBind(values, flattenSchemaRef.current); + } xform.getFlattenSchema = (path?: string) => { if (!path) {