diff --git a/packages/core/client/src/data-source/collection-field/CollectionField.tsx b/packages/core/client/src/data-source/collection-field/CollectionField.tsx index 4b00af3a79..e7cfaa4e04 100644 --- a/packages/core/client/src/data-source/collection-field/CollectionField.tsx +++ b/packages/core/client/src/data-source/collection-field/CollectionField.tsx @@ -18,6 +18,7 @@ import { useCollectionFieldUISchema, useIsInNocoBaseRecursionFieldContext } from import { useDynamicComponentProps } from '../../hoc/withDynamicSchemaProps'; import { useCompile, useComponent } from '../../schema-component'; import { useIsAllowToSetDefaultValue } from '../../schema-settings/hooks/useIsAllowToSetDefaultValue'; +import { isVariable } from '../../variables/utils/isVariable'; import { CollectionFieldProvider, useCollectionField } from './CollectionFieldProvider'; type Props = { @@ -131,7 +132,14 @@ const CollectionFieldInternalField = (props) => { if (!uiSchema) return null; - return ; + const mergedProps = { ...props, ...dynamicProps }; + + // Prevent displaying the variable string first, then the variable value + if (isVariable(mergedProps.value) && mergedProps.value === fieldSchema.default) { + mergedProps.value = undefined; + } + + return ; }; export const CollectionField = connect((props) => { diff --git a/packages/core/client/src/schema-component/antd/form-item/hooks/useParseDefaultValue.ts b/packages/core/client/src/schema-component/antd/form-item/hooks/useParseDefaultValue.ts index cda06cd3c0..f663975902 100644 --- a/packages/core/client/src/schema-component/antd/form-item/hooks/useParseDefaultValue.ts +++ b/packages/core/client/src/schema-component/antd/form-item/hooks/useParseDefaultValue.ts @@ -86,11 +86,6 @@ const useParseDefaultValue = () => { field && ((isVariable(fieldSchema.default) && field.value == null) || field.value === fieldSchema.default || forceUpdate) ) { - // 一个变量字符串如果显示出来会比较奇怪 - if (isVariable(field.value)) { - await field.reset({ forceClear: true }); - } - field.loading = true; const collectionField = !fieldSchema.name.toString().includes('.') && collection?.getField(fieldSchema.name);