如何在反应js中通过悬停切换多个下拉列表

Posted

技术标签:

【中文标题】如何在反应js中通过悬停切换多个下拉列表【英文标题】:how to toggle multiple dropdown with hover in react js 【发布时间】:2020-04-14 00:59:48 【问题描述】:

我有多个下拉菜单,我想在其中一个鼠标悬停时切换,但它没有发生 我的代码链接:Link 我认为,可以发送 Id 并打开下拉列表,但我想要一个好的答案

【问题讨论】:

到目前为止你尝试过什么?如果你能在这里分享你的实现,那真的很有帮助。 :) @SiddAjmera jsfiddle.net/froya20/264vmLos/3 这是我的代码 下拉菜单是动态创建的吗? @lomse 不是,像组件一样创建 你能分享你的代码吗?这将使我们更容易为您提供帮助。 【参考方案1】:

你应该有 curDropdownID 而不是 dropdownOpen 标志,它可以是字符串或数字,现在我假设它是字符串,所以你的状态就像

 this.state = 
  collapsed: true ,
  curDropdownID: ''
;

您需要有 isopen 函数来决定菜单是否打开,如下所示:

isOpen=(id)=>
    return this.state.curDropDownID===id

现在您切换菜单功能应该将 id 作为切换菜单的参数

 toggle(id)     
   this.setState(curDropdownID:id)

并且您的 UncontrolledDropdown 应该呈现为

  <UncontrolledDropdown id="show" nav inNavbar onMouseOver=()=>this.toggle('show') onMouseLeave=()=>this.toggle('') isOpen=this.isOpen('show') 
>
              <DropdownToggle nav caret className="text-dark">
                show
              </DropdownToggle>
              <DropdownMenu right>
                <DropdownItem href='/Search'>
                  Search
                </DropdownItem>
              </DropdownMenu>
          </UncontrolledDropdown>

【讨论】:

谢谢你,我做到了,但不工作,你能把这段代码写在jsfiddle.net 网站并发送

以上是关于如何在反应js中通过悬停切换多个下拉列表的主要内容,如果未能解决你的问题,请参考以下文章

如何在 IOS 6.0(Iphone) 中通过 jquery 为混合应用程序关闭选择器的 onchange 事件下拉列表

反应多个过滤器下拉列表

如何在下拉列表中获取每个项目的不同悬停值?

如何在反应原生中过滤多个选择下拉字段中的数组值

使用 JS 切换每个框的下拉列表

HTML二级导航出现下拉列表后怎么让一级栏目也有鼠标悬停