我正在使用reactstrap制作一个reactjs应用程序,其中我已经做了一个下拉列表,其中包含了它的子菜单。
我试图实现的结果,使子菜单上悬停显示在下拉列表和如果有n号码下拉,那么与悬停项目相关的子菜单需要显示。
已尝试的代码:
<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>预期结果:http://supply.com/
在上述给定的链接中,您可以看到水平菜单,它在悬停时将显示各自的子菜单,而我在需要实现相同的行为。
发布于 2020-01-06 05:28:06
<Dropdown>组件。Array.prototype.map来简化处理程序的设置。import React from "react";
import {
Dropdown,
DropdownToggle,
DropdownMenu,
DropdownItem
} from "reactstrap";
export default class Example extends React.Component {
constructor(props) {
super(props);
this.onMouseEnter = this.onMouseEnter.bind(this);
this.onMouseLeave = this.onMouseLeave.bind(this);
this.state = {
dropdownOpen: -1
};
this.toggle = this.toggle.bind(this);
this.menus = [
{
title: "Bathroom",
submenus: [{ title: "Toilets" }, { title: "Toilet seats" }]
},
{
title: "Kitchen",
submenus: [{ title: "Farmhouse Sinks" }, { title: "Cast Iron Sinks" }]
}
];
}
onMouseEnter(current) {
this.setState({ dropdownOpen: current });
}
onMouseLeave() {
this.setState({ dropdownOpen: -1 });
}
toggle() {}
render() {
return (
<div>
{this.menus.map((menu, i) => (
<Dropdown
className="d-inline-block"
onMouseOver={e => this.onMouseEnter(i)}
onMouseLeave={this.onMouseLeave}
isOpen={this.state.dropdownOpen === i}
toggle={this.toggle}
>
<DropdownToggle caret>{menu.title}</DropdownToggle>
<DropdownMenu>
{menu.submenus.map((submenu, i) => (
<DropdownItem header>{submenu.title}</DropdownItem>
))}
</DropdownMenu>
</Dropdown>
))}
</div>
);
}
}https://stackoverflow.com/questions/59606865
复制相似问题