javascript - 在选择下拉项上隐藏自动完成建议列表并输入单击
问题描述
我已经创建了自动完成建议输入字段,带有去抖钩子,只剩下一个问题,当我选择项目或点击外部时关闭下拉菜单?什么是显示所选项目的最佳解决方案,在创建一些“redableRenderValue”时将其显示在输入值中。
当前行为:当我单击输入或项目本身时,下拉关闭并再次重新打开预期值:关闭模糊,输入关闭并关闭选择项目 https://codesandbox.io/s/usedebounce-ncq2n
解决方案
尝试这个:
const [showSuggestions, setShowSuggestions] = useState(true); //make useState initial value to true instead of false.
并且,从以下代码中删除useEffect
setShowSuggestions(true); //delete this line from your code
也在这里改变:
<input
type="text"
placeholder="Find"
onChange={e => setSearchTerm(e.target.value)}
onClick={onInputClick} //add this attribute
onKeyDown={onKeyDown}
// onBlur={onBlur}
value={searchTerm}
autoFocus
/>
以及要调用的相应函数:
const onInputClick = () =>{
setShowSuggestions(true);
}
并运行您的代码。
我试试看,这样做会很好。希望这会帮助你。
推荐阅读
- sql-server - 永久删除 MS SQL Server 中的有效权限
- laravel - Laravel - 如何使用 API 实现模型功能
- list - Terraform 不起作用输入和环境变量
- python-3.x - Python - >提醒没有弹出
- python-3.x - 为什么我不能使用 personalDetails() 变量进行打印
- javascript - selenium.common.exceptions.JavascriptException:消息:javascript 错误:意外的标识符
- c++11 - 为什么在类内部定义成员函数时仍然有一个内联说明符?
- websocket - web浏览器页面关闭后如何终止websocket进程
- javascript - 在尝试获取所需的对象格式时获取空数据
- javascript - 如何将多个角色设置为 mainRole