From a27671488e3ce2b1bca397ea269db106a4b1af45 Mon Sep 17 00:00:00 2001 From: "kengtou.mh" Date: Mon, 29 Sep 2025 14:46:27 +0800 Subject: [PATCH 1/9] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=8E=9F=E6=9C=89?= =?UTF-8?q?=20select=20=E8=87=AA=E5=8A=A8=E5=AE=8C=E6=88=90=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/components/src/select/index.tsx | 9 ++++++++- .../src/browser/dialog/file-dialog.view.tsx | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/components/src/select/index.tsx b/packages/components/src/select/index.tsx index 64a4f17ff8..66d46ab320 100644 --- a/packages/components/src/select/index.tsx +++ b/packages/components/src/select/index.tsx @@ -27,6 +27,10 @@ export interface ISelectProps { disabled?: boolean; onChange?: (value: T) => void; onSearchChange?: (value: string) => void; + /** + * 搜索行为不采用默认的 filterOptions 进行筛选,由外部托管 + */ + externalSearchBehavior?: boolean; /** * 当鼠标划过时触发回调 * @param value 鼠标划过的是第几个 option @@ -290,6 +294,7 @@ export function Select({ description, notMatchWarning, onSearchChange, + externalSearchBehavior }: ISelectProps) { const [open, setOpen] = useState(false); const [searchInput, setSearchInput] = useState(''); @@ -297,6 +302,8 @@ export function Select({ const selectRef = React.useRef(null); const overlayRef = React.useRef(null); + externalSearchBehavior = externalSearchBehavior ?? !!onSearchChange + const handleToggleOpen = useCallback( (e: React.MouseEvent) => { e.preventDefault(); @@ -526,7 +533,7 @@ export function Select({ {showWarning &&
{notMatchWarning}
} {open && - !searchInput && + !(externalSearchBehavior && searchInput) && (isDataOptions(filteredOptions) || isDataOptionGroups(filteredOptions) ? ( {directoryList.map((item, idx) => (