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); |