Skip to content

Commit c72e94e

Browse files
committed
refator: Improve perf
1 parent fc8a3d2 commit c72e94e

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

src/Tree.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -836,7 +836,6 @@ class Tree extends React.Component<TreeProps, TreeState> {
836836
expandedKeys = arrDel(expandedKeys, key);
837837
}
838838

839-
// TODO: optimize big data flatten logic
840839
const flattenNodes: FlattenNode[] = flattenTreeData(treeData, expandedKeys);
841840
this.setUncontrolledState({ expandedKeys, flattenNodes }, true);
842841

src/utils/treeUtil.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ export function flattenTreeData(
9595
treeNodeList: DataNode[] = [],
9696
expandedKeys: Key[] | true = [],
9797
): FlattenNode[] {
98+
const expandedKeySet = new Set(expandedKeys === true ? [] : expandedKeys);
9899
const flattenList: FlattenNode[] = [];
99100

100101
function dig(list: DataNode[], parent: FlattenNode = null): FlattenNode[] {
@@ -116,7 +117,7 @@ export function flattenTreeData(
116117
flattenList.push(flattenNode);
117118

118119
// Loop treeNode children
119-
if (expandedKeys === true || expandedKeys.includes(mergedKey)) {
120+
if (expandedKeys === true || expandedKeySet.has(mergedKey)) {
120121
flattenNode.children = dig(treeNode.children || [], flattenNode);
121122
} else {
122123
flattenNode.children = [];

0 commit comments

Comments
 (0)