hejianhao
2026-04-21 ec265abd6b650f1d271c3e7d0a664d6c2d149d5e
fix(站点搜索): 修复确认搜索时关键字传递错误的问题

确保在用户点击键盘搜索按钮时,能正确获取搜索关键字。优先使用输入框事件携带的值,其次使用防抖待执行值,最后回退到当前输入值,避免因异步更新导致的关键字丢失。
2个文件已修改
22 ■■■■■ 已修改文件
src/robotaxi/pages/site-search/hooks/use-site-search.ts 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/robotaxi/pages/site-search/index.tsx 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/robotaxi/pages/site-search/hooks/use-site-search.ts
@@ -185,6 +185,20 @@
    searchSiteRef.current(pendingValue);
  };
  // 确认搜索:优先使用显式关键字,其次使用防抖待执行关键字,最后回退到当前输入值
  const confirmSearch = (val?: string) => {
    const explicitValue = typeof val === 'string' ? val : '';
    const pendingValue = pendingSearchValueRef.current;
    const fallbackValue = deps.searchValue;
    const targetValue = explicitValue || pendingValue || fallbackValue || '';
    if (debounceTimerRef.current) {
      clearTimeout(debounceTimerRef.current);
      debounceTimerRef.current = null;
    }
    pendingSearchValueRef.current = '';
    searchSiteRef.current(targetValue);
  };
  // 清空搜索结果列表
  const clearSearchResults = () => {
    cancelDebouncedSearch();
@@ -262,6 +276,7 @@
    debouncedSearch,
    cancelDebouncedSearch,
    flushDebouncedSearch,
    confirmSearch,
    clearSearchResults
  };
}
src/robotaxi/pages/site-search/index.tsx
@@ -44,6 +44,7 @@
    debouncedSearch,
    cancelDebouncedSearch,
    flushDebouncedSearch,
    confirmSearch,
    clearSearchResults
  } = useSiteSearch({
    router,
@@ -242,9 +243,9 @@
          <Input className='search-input' placeholder={pageType == 'start' ? '请输入上车点' : '请输入目的地'} value={searchValue}
            onInput={(e) => changeSearchValue(e)}
            onBlur={flushDebouncedSearch}
            onConfirm={() => {
              cancelDebouncedSearch();
              searchSite();
            onConfirm={(e) => {
              const keyword = e?.detail?.value || searchValue; // 确认搜索关键字,优先取输入框事件值
              confirmSearch(keyword);
            }}
            confirmType='search'
            autoFocus