|  |  | 
 |  |  |     const [createDialog, setCreateDialog] = React.useState(false); | 
 |  |  |     const [editRecord, setEditRecord] = React.useState(null); | 
 |  |  |     const [openNodes, setOpenNodes] = React.useState({}); | 
 |  |  |     const [expandAll, setExpandAll] = React.useState(false); | 
 |  |  |     const [expandAll, setExpandAll] = React.useState(true); | 
 |  |  |  | 
 |  |  |     const http = async () => { | 
 |  |  |         const res = await request.post(RESOURCE + '/tree', { | 
 |  |  | 
 |  |  |             return newExpandAll; | 
 |  |  |         }); | 
 |  |  |     }; | 
 |  |  |  | 
 |  |  |     // 初始化 openNodes 以展开所有节点 | 
 |  |  |     React.useEffect(() => { | 
 |  |  |         if (treeData) { | 
 |  |  |             const newOpenNodes = {}; | 
 |  |  |             const updateOpenNodes = (nodes) => { | 
 |  |  |                 nodes.forEach(node => { | 
 |  |  |                     newOpenNodes[node.id] = true; | 
 |  |  |                     if (node.children) { | 
 |  |  |                         updateOpenNodes(node.children); | 
 |  |  |                     } | 
 |  |  |                 }); | 
 |  |  |             }; | 
 |  |  |             updateOpenNodes(treeData); | 
 |  |  |             setOpenNodes(newOpenNodes); | 
 |  |  |         } | 
 |  |  |     }, [treeData]); | 
 |  |  |  | 
 |  |  |     return ( | 
 |  |  |         <div> | 
 |  |  | 
 |  |  |     ); | 
 |  |  | } | 
 |  |  |  | 
 |  |  | export default MatnrGroupList; | 
 |  |  | export default MatnrGroupList; |