javascript - 单击下拉菜单中的文本框在 ReactJS 中不起作用
问题描述
我在反应中创建了一个自定义下拉菜单,onClick
下拉菜单打开并onBlur
关闭它,我正在控制下拉菜单的打开和关闭与反应状态。现在我想在用户单击下拉菜单以启用搜索功能时切换文本框。问题是,当我单击文本框时,onBlur
事件在下拉菜单中触发并关闭。我试图插入e.stopProagation()
事件onMouseDown
但没有效果。
我特此分享我的 CodeSandBox URL。你能看看,让我知道可以做些什么并帮助我解决问题吗?我将非常感激。
解决方案
您可以检查 currentTarget 以查看它是否包含relatedTarget(新聚焦的项目)
onBlur={event => {
if (!event.currentTarget.contains(event.relatedTarget)) {
setDropDownOpen(false);
}
}}
推荐阅读
- python - 无法在 Heroku 中访问 client_secrets.json 和 Credentials.json 文件
- c++ - 0/1 使用动态规划的背包问题,自上而下的方法
- rrule - 每周 X 天,X 小时长规则
- qt - QProcess 启动时如何管理资源?
- nestjs - for循环中的NestJS异步函数
- reactjs - React 和 i18n 如何通过在 URL 中添加语言环境进行翻译
- javascript - Confusion with mapping arrays of objects JS / Next / React
- mysql - MySQL语句构造
- laravel - 试图在 Laravel 中获取非对象的属性“图像”
- java - 如何从 Assets 文件夹中解析 StickyHeader RecyclerView 中的 json 数据