function updateTreeData(list: DataNode[], key: React.Key, children: DataNode[]): DataNode[] {
return list.map((node: any) => {
if (node.absPath === key) {
return {
...node,
children,
};
}
if (node.children) {
return {
...node,
children: updateTreeData(node.children, key, children),
};
}
return node;
});
}
const onLoadData = ({ key, children }: any) =>
new Promise<void>(resolve => {
if (children) {
resolve();
return;
}
getSubDirectory(encodeURI(key)).then(res => {
setTreeData((treeData) =>
updateTreeData(treeData, key, res)
)
})
resolve();
});