为了账号安全,请及时绑定邮箱和手机立即绑定

单击下拉列表中的文本框在 ReactJS 中不起作用

单击下拉列表中的文本框在 ReactJS 中不起作用

我在 react 中创建了一个自定义下拉列表,其中下拉列表打开并关闭它,并且我正在使用 react 状态控制下拉列表的打开和关闭。现在,我想在用户单击下拉列表以启用搜索功能时切换文本框。问题是,当我单击文本框时,事件在下拉列表中启动并被关闭。我试图插入事件,但没有效果。onClickonBluronBlure.stopProagation()onMouseDown我特此分享我的CodeSandBox URL。您能看一看,让我知道可以做些什么并帮助我解决问题吗?我将非常感激。
查看完整描述

3 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

您可以检查当前目标以查看它是否包含相关的目标(新关注的项目)


onBlur={event => {

  if (!event.currentTarget.contains(event.relatedTarget)) {

    setDropDownOpen(false);

  }

}}


查看完整回答
反对 回复 2022-08-04
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

我创建了一个非常简单的演示,演示如何解决此问题(请参阅沙盒)。

简而言之,我创建了另一个钩子来检查输入焦点当前是否处于活动状态。如果是,则不要在模糊时关闭 div。


查看完整回答
反对 回复 2022-08-04
?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

这里有一个建议:使用eventListner

  • addEventlisteneron componentDidMount

  • removeEventlistener上点击

  • addEventlistener当您从下拉列表中选择项目时,再次这样做。


查看完整回答
反对 回复 2022-08-04
  • 3 回答
  • 0 关注
  • 180 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信