【发布时间】:2020-04-21 19:12:37
【问题描述】:
在一个 react 应用程序中,我使用 reactstrap css 框架来制作下拉菜单以列出下拉菜单。
Example.Js
<Dropdown
className="d-inline-block"
onMouseOver={this.onMouseEnter}
onMouseLeave={this.onMouseLeave}
isOpen={this.state.dropdownOpen}
toggle={this.toggle}
>
<DropdownToggle caret>Dropdown1</DropdownToggle>
<DropdownMenu>
<DropdownItem header>Submenu 1</DropdownItem>
<DropdownItem>Submenu 1.1</DropdownItem>
</DropdownMenu>
<DropdownToggle caret>Dropdown2</DropdownToggle>
<DropdownMenu>
<DropdownItem header>Submenu 2</DropdownItem>
<DropdownItem>Submenu 2.1</DropdownItem>
<DropdownItem>Submenu 2.2</DropdownItem>
</DropdownMenu>
<br /><br />
<DropdownToggle caret>Dropdown3</DropdownToggle>
<DropdownMenu>
<DropdownItem header>Submenu 3</DropdownItem>
<DropdownItem>Submenu 3.1</DropdownItem>
<DropdownItem>Submenu 3.2</DropdownItem>
<DropdownItem>Submenu 3.3</DropdownItem>
</DropdownMenu>
</Dropdown>
这里我做了setState 来设置dropDownOpen 在onMouseOver 和onMouseLeave 等事件中的状态。
问题悬停在单个下拉菜单上,每个下拉菜单都会打开。
请帮我制作悬停下拉菜单,以便一次只列出悬停的菜单,而不是全部。
注意:在我的实际应用程序中,这些下拉菜单将是动态的,所以我无法制作任何硬编码状态,例如dropDown1、dropDown2、dropDown3 ... 等。
它可能有任何n 数量的下拉菜单。所以请给我解决方案以考虑动态菜单。
【问题讨论】:
-
所有下拉切换和菜单都在一个下拉列表中,由单个状态变量控制。我认为每个人都应该在自己的
Dropdown组件中。 -
对于这三个下拉菜单,您使用相同的状态
-
@DrewReese,我是 reactjs 的新手,所以你能通过修改上面给出的例子来帮助我给出正确的解决方案吗?请随时编辑我的示例并为这个问题提供良好的解决方案。我的方法可能是错误的,所以请纠正我..
-
@DILEEPTHOMAS,我是 reactjs 的新手,所以你能通过修改上面给出的例子来帮助我给出正确的解决方案吗?
-
@TestUser 当然我会用新的 stackblitz 更新
标签: javascript css reactjs twitter-bootstrap reactstrap