From 9f7f482aa43d9a98ba6953b55b2d417875141253 Mon Sep 17 00:00:00 2001 From: SemmyWong <67748948+semmywong@users.noreply.github.com> Date: Mon, 25 Jul 2022 09:41:32 +0800 Subject: [PATCH] fix: field loss enum (#667) --- .../client/src/collection-manager/CollectionField.tsx | 6 +++--- .../components/assigned-field/AssignedField.tsx | 9 +++++---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/packages/core/client/src/collection-manager/CollectionField.tsx b/packages/core/client/src/collection-manager/CollectionField.tsx index ca5d8f9a1..aa68cd873 100644 --- a/packages/core/client/src/collection-manager/CollectionField.tsx +++ b/packages/core/client/src/collection-manager/CollectionField.tsx @@ -1,11 +1,11 @@ import { Field } from '@formily/core'; import { connect, useField, useFieldSchema } from '@formily/react'; import { merge } from '@formily/shared'; +import { concat } from 'lodash'; import React, { useEffect } from 'react'; import { useCompile, useComponent, useFormBlockContext } from '..'; import { CollectionFieldProvider } from './CollectionFieldProvider'; import { useCollectionField } from './hooks'; -import { concat } from 'lodash'; // TODO: 初步适配 const InternalField: React.FC = (props) => { @@ -40,7 +40,7 @@ const InternalField: React.FC = (props) => { setFieldProps('description', uiSchema.description); setFieldProps('initialValue', uiSchema.default); if (!field.validator && (uiSchema['x-validator'] || fieldSchema['x-validator'])) { - const concatSchema = concat([], uiSchema['x-validator'] || [], fieldSchema['x-validator'] || []) + const concatSchema = concat([], uiSchema['x-validator'] || [], fieldSchema['x-validator'] || []); field.validator = concatSchema; } if (fieldSchema['x-disabled'] === true) { @@ -69,7 +69,7 @@ const InternalField: React.FC = (props) => { if (!uiSchema) { return null; } - + return React.createElement(component, props, props.children); }; diff --git a/packages/core/client/src/schema-initializer/components/assigned-field/AssignedField.tsx b/packages/core/client/src/schema-initializer/components/assigned-field/AssignedField.tsx index 4ae63ebd7..afaeb0fc0 100644 --- a/packages/core/client/src/schema-initializer/components/assigned-field/AssignedField.tsx +++ b/packages/core/client/src/schema-initializer/components/assigned-field/AssignedField.tsx @@ -1,5 +1,6 @@ import { Field } from '@formily/core'; import { connect, useField, useFieldSchema } from '@formily/react'; +import { merge } from '@formily/shared'; import { Cascader, Select, Space } from 'antd'; import React, { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; @@ -18,7 +19,6 @@ const DYNAMIC_TIME_REG = /\{\{\s*currentTime\s*\}\}/; const InternalField: React.FC = (props) => { const field = useField(); - const fieldSchema = useFieldSchema(); const { name, interface: interfaceType, uiSchema } = useCollectionField(); const component = useComponent(uiSchema?.['x-component']); @@ -59,9 +59,10 @@ const InternalField: React.FC = (props) => { } setRequired(); // @ts-ignore - // field.dataSource = uiSchema.enum; - // const originalProps = compile(uiSchema['x-component-props']) || {}; - // const componentProps = merge(originalProps, field.componentProps || {}); + field.dataSource = uiSchema.enum; + const originalProps = compile(uiSchema['x-component-props']) || {}; + const componentProps = merge(originalProps, field.componentProps || {}); + field.componentProps = componentProps; // field.component = [component, componentProps]; }, [JSON.stringify(uiSchema)]); if (!uiSchema) {