fix(cascadeSelect): cassadeSelect does not dislay data in edit form (#3649)

This commit is contained in:
katherinehhh 2024-03-07 19:22:34 +08:00 committed by GitHub
parent 263ee28c72
commit 16581a547c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -22,7 +22,7 @@ const SchemaField = createSchemaField({
});
const CascadeSelect = connect((props) => {
const { data, mapOptions, onChange } = props;
const { data, mapOptions, onChange, value } = props;
const [selectedOptions, setSelectedOptions] = useState<{ key: string; children: any; value?: any }[]>([
{ key: undefined, children: [], value: null },
]);
@ -47,10 +47,10 @@ const CascadeSelect = connect((props) => {
}, [targetField]);
const field: any = useField();
useEffect(() => {
if (props.value) {
const values = Array.isArray(props.value)
? extractLastNonNullValueObjects(props.value?.filter((v) => v.value), true)
: transformNestedData(props.value);
if (value) {
const values = Array.isArray(value)
? extractLastNonNullValueObjects(value?.filter((v) => v.value), true)
: transformNestedData(value);
const options = values?.map?.((v) => {
return {
key: v.parentId,
@ -302,6 +302,7 @@ export const InternalCascadeSelect = observer(
},
};
return (
props.value !== null && (
<FormProvider form={selectForm}>
{collectionField.interface === 'm2o' ? (
<SchemaComponent
@ -320,6 +321,7 @@ export const InternalCascadeSelect = observer(
<SchemaField schema={schema} />
)}
</FormProvider>
)
);
},
{ displayName: 'InternalCascadeSelect' },