From 7c86e9e28c4089d059f2619d39e054d447fa542d Mon Sep 17 00:00:00 2001 From: yinkaihui Date: Fri, 29 Oct 2021 18:21:08 +0800 Subject: [PATCH] fix: tree-select filter error --- components/TreeSelect/tree-select.tsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/components/TreeSelect/tree-select.tsx b/components/TreeSelect/tree-select.tsx index d72653195e..98819c3123 100644 --- a/components/TreeSelect/tree-select.tsx +++ b/components/TreeSelect/tree-select.tsx @@ -158,19 +158,19 @@ const TreeSelect: ForwardRefRenderFunction< }, [inputValue]); const searchKeys = useMemo(() => { - const newKeys = new Set(hitKeys); + let newKeys: string[] = []; if (inputValue) { for (const key in key2nodeProps) { const item = key2nodeProps[key]; - if (newKeys.has(key)) { - item.pathParentKeys.forEach((_key) => newKeys.add(_key)); - } else if (newKeys.has(item.parentKey)) { - newKeys.add(key); + const pathKeys = [...item.pathParentKeys, key]; + + if (pathKeys.some((_key) => hitKeys && hitKeys.has(_key))) { + newKeys = newKeys.concat(pathKeys); } } } - return Array.from(newKeys); + return Array.from(new Set(newKeys)); }, [inputValue, key2nodeProps, hitKeys]); useEffect(() => {