【发布时间】:2020-05-15 13:24:51
【问题描述】:
我有一个左菜单,当你点击一个元素时,会出现该元素的子菜单。
但是对于我的实际代码,当点击一个元素时,我的所有子菜单都会出现。
我知道我的方法不对,但我不知道该怎么做:(
我的示例代码:
import { useState } from 'react'
export default function Menu(){
const [visibleSubCategorie, setVisibleSubCategorie] = useState(false)
const Menu = [{
name: 'Homme', link : '/homme-fr', subCategory: false
}, {
name: 'Femme', link : '/femme-fr', subCategory: [{
name: 'haut', link : '/femme-haut-fr'
},{
name: 'bas', link : '/femme-bas-fr'
}]
},{
name: 'Enfant', link : '/enfant-fr', subCategory: [{
name: 'haut', link : '/enfant-haut-fr'
},{
name: 'bas', link : '/enfant-bas-fr'
}]
}]
console.log("Menu -> Menu", Menu)
return(
<>
{Menu.map(item=>
<div>
{item.subCategory ?
<>
<button type="button" onClick={() => setVisibleSubCategorie(!visibleSubCategorie)}>{item.name}</button>
{visibleSubCategorie && item.subCategory.map(subCategorys=>
<>
<p>{subCategorys.name}</p>
</>
)}
</>
:
<a href={item.link}>{item.name}</a>
}
</div>
)}
</>
)
}``
例子:当我点击“Femme”按钮来查看femme的子类别时,就像我也点击了“Enfant”按钮一样。
我可以创建一个合成器并在里面创建 usestate "const [visibleSubCategorie, setVisibleSubCategorie] = useState(false)" 并且这个合成器在地图中,但我知道存在另一种方法。
【问题讨论】:
标签: javascript reactjs