【发布时间】:2020-06-21 10:48:51
【问题描述】:
我正在使用 recursion function 制作菜单和子菜单,我需要帮助才能仅打开相应的菜单和子菜单..
对于按钮和折叠Reactstrap已使用..
进行菜单填充的递归函数:
{this.state.menuItems &&
this.state.menuItems.map((item, index) => {
return (
<div key={item.id}>
<Button onClick={this.toggle.bind(this)}> {item.name} </Button>
<Collapse isOpen={this.state.isToggleOpen}>
{this.buildMenu(item.children)}
</Collapse>
</div>
);
})}
而buildMenu函数如下,
buildMenu(items) {
return (
<ul>
{items &&
items.map(item => (
<li key={item.id}>
<div>
{this.state.isToggleOpen}
<Button onClick={this.toggle.bind(this)}> {item.name} </Button>
<Collapse isOpen={this.state.isToggleOpen}>
{item.children && item.children.length > 0
? this.buildMenu(item.children)
: null}
</Collapse>
</div>
</li>
))}
</ul>
);
}
到目前为止,代码没有问题,但我需要帮助才能让menu -> submenu -> submenu 逐步打开和关闭各个级别。
工作示例:https://codesandbox.io/s/reactstrap-accordion-9epsp
你可以看看这个例子,当你点击任何菜单时,整个级别的菜单都会打开而不是点击一个..
要求
如果用户点击菜单One,则子菜单(子菜单)
-> One-One
需要打开。
然后如果用户点击One-One,
-> One-One-One
-> One - one - two
-> One - one - three
需要打开。
同样它是嵌套的,因此在单击任何菜单/子级后,它们各自的下一级需要打开。
我是 react 和 reactstrap 设计方式的新手,所以任何来自专业人士的帮助都会有助于我继续学习并了解实际需要如何完成。
【问题讨论】:
标签: javascript reactjs accordion collapse reactstrap