fix(Variable): fix can not select
This commit is contained in:
parent
0a21c3bed2
commit
b7cb9a45c2
@ -1,6 +1,6 @@
|
||||
import { observable } from '@formily/reactive';
|
||||
import { error } from '@nocobase/utils/client';
|
||||
import { useMemo } from 'react';
|
||||
import { useMemo, useRef } from 'react';
|
||||
import { useCompile, useGetFilterOptions } from '../../../schema-component';
|
||||
import { FieldOption, Option } from '../type';
|
||||
|
||||
@ -49,6 +49,8 @@ const getChildren = (options: FieldOption[], { schema, depth, maxDepth, loadChil
|
||||
export const useUserVariable = ({ schema, maxDepth = 3 }: { schema: any; maxDepth?: number }) => {
|
||||
const compile = useCompile();
|
||||
const getFilterOptions = useGetFilterOptions();
|
||||
const schemaRef = useRef(schema);
|
||||
schemaRef.current = schema;
|
||||
|
||||
const loadChildren = (option: Option): Promise<void> => {
|
||||
if (!option.field?.target) {
|
||||
@ -63,7 +65,7 @@ export const useUserVariable = ({ schema, maxDepth = 3 }: { schema: any; maxDept
|
||||
setTimeout(() => {
|
||||
const children =
|
||||
getChildren(getFilterOptions(collectionName), {
|
||||
schema,
|
||||
schema: schemaRef.current,
|
||||
depth: option.depth + 1,
|
||||
maxDepth,
|
||||
loadChildren,
|
||||
@ -90,7 +92,7 @@ export const useUserVariable = ({ schema, maxDepth = 3 }: { schema: any; maxDept
|
||||
depth: 0,
|
||||
loadChildren,
|
||||
} as Option);
|
||||
}, [schema]);
|
||||
}, []);
|
||||
|
||||
// 必须使用 observable 包一下,使其变成响应式对象,不然 children 加载后不会更新 UI
|
||||
return observable(result);
|
||||
|
Loading…
Reference in New Issue
Block a user