Showing
1 changed file
with
4 additions
and
1 deletions
@@ -98,6 +98,7 @@ export const useNodeFieldDisplay = ({ | @@ -98,6 +98,7 @@ export const useNodeFieldDisplay = ({ | ||
98 | ); | 98 | ); |
99 | const [inputDisplay, setInputDisplay] = useState<React.ReactNode>(); | 99 | const [inputDisplay, setInputDisplay] = useState<React.ReactNode>(); |
100 | const [optionalNodes, setOptionalNodes] = useState<FiledType[]>([]); // 根据 fieldType 过滤后的 nodes | 100 | const [optionalNodes, setOptionalNodes] = useState<FiledType[]>([]); // 根据 fieldType 过滤后的 nodes |
101 | + const displayResolved = useRef<boolean>(false) | ||
101 | 102 | ||
102 | const getResultFieldMap = (optionalNodes: FiledType[]) => { | 103 | const getResultFieldMap = (optionalNodes: FiledType[]) => { |
103 | const resultMap: Record<string, FiledType | INode> = {}; | 104 | const resultMap: Record<string, FiledType | INode> = {}; |
@@ -159,10 +160,12 @@ export const useNodeFieldDisplay = ({ | @@ -159,10 +160,12 @@ export const useNodeFieldDisplay = ({ | ||
159 | 160 | ||
160 | const getDisplayConfig = async (val = value): Promise<FiledType[]> => { | 161 | const getDisplayConfig = async (val = value): Promise<FiledType[]> => { |
161 | return new Promise((resolve, reject) => { | 162 | return new Promise((resolve, reject) => { |
163 | + if (displayResolved.current) resolve(handleGetDisplayConfig(val!)) | ||
162 | resolveDisplayConfig.current = () => { | 164 | resolveDisplayConfig.current = () => { |
163 | try { | 165 | try { |
164 | console.log('handleGetDisplayConfig'); | 166 | console.log('handleGetDisplayConfig'); |
165 | resolve(handleGetDisplayConfig(val!)); | 167 | resolve(handleGetDisplayConfig(val!)); |
168 | + displayResolved.current = true | ||
166 | } catch (error) { | 169 | } catch (error) { |
167 | reject(error); | 170 | reject(error); |
168 | } | 171 | } |
@@ -424,7 +427,7 @@ export const useNodeFieldDisplay = ({ | @@ -424,7 +427,7 @@ export const useNodeFieldDisplay = ({ | ||
424 | newNodes = getEffectiveNodes(cloneDeep(newNodes)); | 427 | newNodes = getEffectiveNodes(cloneDeep(newNodes)); |
425 | } | 428 | } |
426 | 429 | ||
427 | - console.log('newNodes', newNodes); | 430 | + // console.log('newNodes', newNodes); |
428 | setOptionalNodes(newNodes); | 431 | setOptionalNodes(newNodes); |
429 | resultFieldMap.current = getResultFieldMap(newNodes); | 432 | resultFieldMap.current = getResultFieldMap(newNodes); |
430 | resolveFieldResultMap.current?.(resultFieldMap.current); | 433 | resolveFieldResultMap.current?.(resultFieldMap.current); |