【发布时间】:2019-02-06 17:53:17
【问题描述】:
我做了一些下拉菜单:
export default class DropdownMenu extends Component {
constructor(props) {
super(props)
this.state = {
menuOpen: false,
highlight: false,
count: this.props.count | 0
}
this.showDropdown = this.showDropdown.bind(this);
}
componentDidMount() {
}
showDropdown() {
this.setState({
menuOpen: !this.state.menuOpen
});
}
render() {
return <div className="dropdown__menu" onClick={this.showDropdown}>
{this.props.text} {this.state.count > 0 ? <b>{this.state.count}</b> : ''}
<div className="dropdown__content" style={this.state.menuOpen ? {'display': 'block'} : {'display': 'none'}}>
{this.props.children}
</div>
</div>
}
}
问题是您可以打开所有它们并让它们保持打开状态,直到您再次单击它们以关闭它们。如果打开了另一个菜单,我该如何关闭其他任何打开的菜单?
这里是它们的实现位置:
render() {
...
<div className="filter_container">
<DropdownMenu text="New" count={127} disabled/>
<DropdownMenu text="Only show">
<li>New</li>
<li>Old</li>
</DropdownMenu>
<DropdownMenu text="Other">
<li>one</li>
<li>two</li>
</DropdownMenu>
<DropdownMenu text="Sort by">
<li>Name</li>
<li>Age</li>
<li>Value</li>
</DropdownMenu>
</div>
</div>
...
【问题讨论】:
-
您是否运行地图来呈现 DropdownMenus 列表。您能显示该组件的代码吗?
-
@anuragb26 请查看我的编辑。
-
@imperium2335 你有机会看到解决方案吗?你觉得它们有用吗?
标签: javascript reactjs