From 532a1188cce05ab10d7f37fd8255dcf2dc6095ce Mon Sep 17 00:00:00 2001 From: mengshang918 Date: Thu, 20 Jan 2022 11:11:06 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=B5=8C=E5=A5=97=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E5=AF=B9=E8=B1=A1=E5=AE=B9=E5=99=A8=E5=BF=85=E5=A1=AB=E5=A4=B1?= =?UTF-8?q?=E6=95=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 嵌套容器子元素校验前提是,父元素存在,所以需要设置default:{} --- .../src/components/RightSideBar/Check/index.tsx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/generator/src/components/RightSideBar/Check/index.tsx b/packages/generator/src/components/RightSideBar/Check/index.tsx index dc834c0f..0d170cf5 100644 --- a/packages/generator/src/components/RightSideBar/Check/index.tsx +++ b/packages/generator/src/components/RightSideBar/Check/index.tsx @@ -354,19 +354,21 @@ const CheckConfig = (): JSX.Element => { } else { const oldRequired = generatorContext.current?.get(parentKey).dataSchema.required + // 当前变动必填的key值 + const requiredKey = selectedFieldKey.split('.').pop() as string // 必填字段需要设置到选中表单的父级schema中 if (data) { // 设置必填校验 const newRequired = !oldRequired - ? [selectedFieldKey] - : !oldRequired.includes(selectedFieldKey) - ? [...oldRequired, selectedFieldKey] + ? [requiredKey] + : !oldRequired.includes(requiredKey) + ? [...oldRequired, requiredKey] : oldRequired generatorContext.current?.merge(parentKey, 'dataSchema', { errorMessage: { required: { // 如果当前变化的key是必填错误文案(errorMessage.required),则默认使用设置的错误文案,否则文案为必填 - [selectedFieldKey]: key.startsWith('errorMessage') + [requiredKey]: key.startsWith('errorMessage') ? data || '必填' : '必填', }, @@ -374,13 +376,11 @@ const CheckConfig = (): JSX.Element => { required: newRequired, }) } else { - const index = oldRequired?.findIndex( - (item) => item === selectedFieldKey - ) + const index = oldRequired?.findIndex((item) => item === requiredKey) // 删除必填校验 generatorContext.current?.set(parentKey, 'dataSchema', (draft) => { deleteDeepProp( - ['errorMessage', 'required', selectedFieldKey], + ['errorMessage', 'required', requiredKey], draft as Map ) if (index) {