Skip to content

Commit

Permalink
fix: 嵌套表单对象容器必填失效问题
Browse files Browse the repository at this point in the history
嵌套容器子元素校验前提是,父元素存在,所以需要设置default:{}
  • Loading branch information
mengshang918 committed Jan 20, 2022
1 parent d69d1d6 commit 532a118
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions packages/generator/src/components/RightSideBar/Check/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -354,33 +354,33 @@ 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 || '必填'
: '必填',
},
},
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) {
Expand Down

0 comments on commit 532a118

Please sign in to comment.