diff --git a/packages/core/client/src/schema-component/antd/association-field/AssociationSelect.tsx b/packages/core/client/src/schema-component/antd/association-field/AssociationSelect.tsx index 50bb5a5c08..fd3ca582fa 100644 --- a/packages/core/client/src/schema-component/antd/association-field/AssociationSelect.tsx +++ b/packages/core/client/src/schema-component/antd/association-field/AssociationSelect.tsx @@ -3,7 +3,7 @@ import { RecursionField, connect, mapProps, observer, useField, useFieldSchema } import { Button, Input } from 'antd'; import React, { useCallback, useEffect, useMemo, useState } from 'react'; import { useTranslation } from 'react-i18next'; -import { CollectionProvider, useCollection } from '../../../collection-manager'; +import { CollectionProvider, useCollection, useCollectionManager } from '../../../collection-manager'; import { useFieldTitle } from '../../hooks'; import { ActionContext } from '../action'; import { RemoteSelect, RemoteSelectProps } from '../remote-select'; @@ -18,11 +18,12 @@ export type AssociationSelectProps
= RemoteSelectProps
& {
const InternalAssociationSelect = observer((props: AssociationSelectProps) => {
const { fieldNames, objectValue = true } = props;
const field: any = useField();
+ const fieldSchema = useFieldSchema();
const [visibleAddNewer, setVisibleAddNewer] = useState(false);
const { getField } = useCollection();
- const collectionField = getField(field.props.name);
+ const { getCollectionJoinField } = useCollectionManager();
+ const collectionField = getField(field.props.name) || getCollectionJoinField(fieldSchema?.['x-collection-field']);
const service = useServiceOptions(props);
- const fieldSchema = useFieldSchema();
const isFilterForm = fieldSchema['x-designer'] === 'FormItem.FilterFormDesigner';
const isAllowAddNew = fieldSchema['x-add-new'];
const insertAddNewer = useInsertSchema('AddNewer');
@@ -74,7 +75,7 @@ const InternalAssociationSelect = observer((props: AssociationSelectProps) => {