| | |
| | | |
| | | 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>({}) |
| | |
| | | const clearSearchValue = () => { |
| | | setSearchValue(''); |
| | | clearSearchResults(); |
| | | // 非受控输入框:通过自增 key 重挂载来清空原生输入框内容 |
| | | setInputResetKey((k) => k + 1); |
| | | } |
| | | const handleCloseTipPopup = () => { |
| | | setShowTipPopup(false); |
| | |
| | | <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) => { |