ai-coding
2026-06-30 6d240abc0c5adb51f4fdfaad0e310ec2c037781d
fix(site-search): 修复iOS搜索输入框吞字的问题

Co-Authored-By: 廖芳 <liaof@xiaopeng.com>
1个文件已修改
9 ■■■■■ 已修改文件
src/robotaxi/pages/site-search/index.tsx 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/robotaxi/pages/site-search/index.tsx
@@ -67,6 +67,9 @@
function SiteSearchPage() {
  const [searchValue, setSearchValue] = useState('') //搜索值
  // 输入框重置 key:仅在清空/编程式重置时自增以重挂载输入框,
  // 输入框采用非受控模式(不回填 value),避免 iOS 下 re-render 回填打断输入法导致丢字/输入不进去
  const [inputResetKey, setInputResetKey] = useState(0)
  const [showAllHistory, setShowAllHistory] = useState(false) // 是否展示全部历史记录
  const [showAllRecommend, setShowAllRecommend] = useState(false) // 是否展示全部推荐站点
  const [distanceConfig, setDistanceConfig] = useState<any>({})
@@ -413,6 +416,8 @@
  const clearSearchValue = () => {
    setSearchValue('');
    clearSearchResults();
    // 非受控输入框:通过自增 key 重挂载来清空原生输入框内容
    setInputResetKey((k) => k + 1);
  }
  const handleCloseTipPopup = () => {
    setShowTipPopup(false);
@@ -532,7 +537,9 @@
      <View className='search-card'>
        <View className={`search-icon ${pageType == 'end' ? 'end-icon' : ''}`}></View>
        <View className='search-input-box'>
          <Input className='search-input' placeholder={pageType == 'start' ? '请输入上车点' : '请输入目的地'} value={searchValue}
          <Input className='search-input' placeholder={pageType == 'start' ? '请输入上车点' : '请输入目的地'}
            key={inputResetKey}
            defaultValue={searchValue}
            onInput={(e) => changeSearchValue(e)}
            onBlur={flushDebouncedSearch}
            onConfirm={(e) => {