From fc5e67d96b259272bf5d88f43ddfe4fa0712a400 Mon Sep 17 00:00:00 2001 From: katherinehhh Date: Tue, 27 Feb 2024 10:57:51 +0800 Subject: [PATCH] fix: dataSource in select readPretty is missing (#3574) --- .../client/src/schema-component/antd/checkbox/Checkbox.tsx | 4 +++- .../core/client/src/schema-component/antd/radio/Radio.tsx | 4 +++- .../client/src/schema-component/antd/select/ReadPretty.tsx | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/core/client/src/schema-component/antd/checkbox/Checkbox.tsx b/packages/core/client/src/schema-component/antd/checkbox/Checkbox.tsx index b609ccbbaa0..69ee0fa86ae 100644 --- a/packages/core/client/src/schema-component/antd/checkbox/Checkbox.tsx +++ b/packages/core/client/src/schema-component/antd/checkbox/Checkbox.tsx @@ -5,6 +5,7 @@ import { Checkbox as AntdCheckbox, Tag } from 'antd'; import type { CheckboxGroupProps, CheckboxProps } from 'antd/es/checkbox'; import uniq from 'lodash/uniq'; import React from 'react'; +import { useCollectionField } from '../../../collection-manager'; import { EllipsisWithTooltip } from '../input/EllipsisWithTooltip'; type ComposedCheckbox = React.ForwardRefExoticComponent< @@ -50,7 +51,8 @@ Checkbox.Group = connect( return null; } const field = useField(); - const dataSource = field.dataSource || []; + const { uiSchema } = useCollectionField(); + const dataSource = field.dataSource || uiSchema.enum || []; const value = uniq(field.value ? field.value : []); return ( diff --git a/packages/core/client/src/schema-component/antd/radio/Radio.tsx b/packages/core/client/src/schema-component/antd/radio/Radio.tsx index e5a05fcca62..835cbf89160 100644 --- a/packages/core/client/src/schema-component/antd/radio/Radio.tsx +++ b/packages/core/client/src/schema-component/antd/radio/Radio.tsx @@ -3,6 +3,7 @@ import { isValid } from '@formily/shared'; import { Radio as AntdRadio, Tag } from 'antd'; import type { RadioGroupProps, RadioProps } from 'antd/es/radio'; import React from 'react'; +import { useCollectionField } from '../../../collection-manager'; type ComposedRadio = React.FC & { Group?: React.FC; @@ -29,7 +30,8 @@ Radio.Group = connect( } const { value } = props; const field = useField(); - const dataSource = field.dataSource || []; + const { uiSchema } = useCollectionField(); + const dataSource = field.dataSource || uiSchema.enum || []; return (
{dataSource diff --git a/packages/core/client/src/schema-component/antd/select/ReadPretty.tsx b/packages/core/client/src/schema-component/antd/select/ReadPretty.tsx index 8802603a3ea..97f2592be59 100644 --- a/packages/core/client/src/schema-component/antd/select/ReadPretty.tsx +++ b/packages/core/client/src/schema-component/antd/select/ReadPretty.tsx @@ -5,6 +5,7 @@ import { Tag } from 'antd'; import React from 'react'; import { EllipsisWithTooltip } from '../input/EllipsisWithTooltip'; import { defaultFieldNames, getCurrentOptions } from './utils'; +import { useCollectionField } from '../../../collection-manager'; export const ReadPretty = observer( (props: any) => { @@ -17,7 +18,8 @@ export const ReadPretty = observer( if (isArrayField(field) && field?.value?.length === 0) { return
; } - const dataSource = field.dataSource || props.options || []; + const { uiSchema } = useCollectionField(); + const dataSource = field.dataSource || props.options || uiSchema.enum || []; const currentOptions = getCurrentOptions(field.value, dataSource, fieldNames); return (