From 795236e8342a19a350d9f4f37c2ffcd202995c09 Mon Sep 17 00:00:00 2001 From: James-9696 Date: Thu, 27 Feb 2025 01:06:36 -0800 Subject: [PATCH 1/3] fix: modifying form validation sorting issues in asynchronous situations --- packages/renderless/src/form/index.ts | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/packages/renderless/src/form/index.ts b/packages/renderless/src/form/index.ts index 6b84db2d4c..efab64c5fb 100644 --- a/packages/renderless/src/form/index.ts +++ b/packages/renderless/src/form/index.ts @@ -179,8 +179,12 @@ export const validate = Object.keys(field).forEach((item) => invalidFieldArr.push(item)) } + // 排序 + const sortField = sortFields(state.fields, invalidFields) + const sortFieldArr = sortFields(state.fields, invalidFieldArr) + if (typeof callback === 'function' && ++count === state.fields.length) { - callback(valid, invalidFields, invalidFieldArr) + callback(valid, sortField, sortFieldArr) } }) }) @@ -190,6 +194,23 @@ export const validate = } } +const sortFields = (fileds, val) => { + const arrField = fileds.map((item) => item.prop) + if (Object.prototype.toString.call(val) === '[object Object]') { + const keys = Object.keys(val) + const sortKeys = keys.sort((a, b) => arrField.indexOf(a) - arrField.indexOf(b)) + const sortedObject = sortKeys.reduce((acc, index) => { + acc[index] = val[index] + return acc + }, {}) + return sortedObject + } + if (Array.isArray(val)) { + val.sort((x, y) => arrField.indexOf(x) - arrField.indexOf(y)) + return val + } +} + export const validateField = (state: IFormRenderlessParams['state']) => (props, cb): void => { From a34887a11591cc09cf9f0aab9f43e4755c1f56b6 Mon Sep 17 00:00:00 2001 From: James-9696 Date: Mon, 3 Mar 2025 22:15:28 -0800 Subject: [PATCH 2/3] fix: revise inspection comments --- packages/renderless/src/form/index.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/renderless/src/form/index.ts b/packages/renderless/src/form/index.ts index efab64c5fb..c83d862e3a 100644 --- a/packages/renderless/src/form/index.ts +++ b/packages/renderless/src/form/index.ts @@ -179,11 +179,10 @@ export const validate = Object.keys(field).forEach((item) => invalidFieldArr.push(item)) } - // 排序 - const sortField = sortFields(state.fields, invalidFields) - const sortFieldArr = sortFields(state.fields, invalidFieldArr) - if (typeof callback === 'function' && ++count === state.fields.length) { + // 排序 + const sortField = sortFields(state.fields, invalidFields) + const sortFieldArr = sortFields(state.fields, invalidFieldArr) callback(valid, sortField, sortFieldArr) } }) From f9227958bcb005915260cf474d290b440dc63ad4 Mon Sep 17 00:00:00 2001 From: James-9696 Date: Mon, 3 Mar 2025 22:44:10 -0800 Subject: [PATCH 3/3] fix: revise inspection comments --- packages/renderless/src/form/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/renderless/src/form/index.ts b/packages/renderless/src/form/index.ts index c83d862e3a..75a514e38f 100644 --- a/packages/renderless/src/form/index.ts +++ b/packages/renderless/src/form/index.ts @@ -198,8 +198,8 @@ const sortFields = (fileds, val) => { if (Object.prototype.toString.call(val) === '[object Object]') { const keys = Object.keys(val) const sortKeys = keys.sort((a, b) => arrField.indexOf(a) - arrField.indexOf(b)) - const sortedObject = sortKeys.reduce((acc, index) => { - acc[index] = val[index] + const sortedObject = sortKeys.reduce((acc, key) => { + acc[key] = val[key] return acc }, {}) return sortedObject