如何跳过一个函数取决于元素的id。现在,如果我点击任何单个元素,所有元素都会被点击。如何防止显示所有元素?以下是我的代码
const[showsubcat,setShowSubCat] = useState(false)
let subcategory=(()=>{
setShowSubCat(prev=>!prev)
})
我的JSX
{data.map((data)=>{
return(
<>
<li class="list-group-item" id={data.id} onClick={subcategory} >{data.main_category}</li>
{showsubcat &&
<li><i class="las la-angle-right" id="sub_category"></i> {data.sub_category}</li>
}
</>
)
请看屏幕截图。我点击了单个项目,但它显示了所有项目。
1条答案
按热度按时间b1zrtrql1#
每个li都应该有自己的状态,所以要么基于li的数量创建状态,要么最多只有2个元素!但它很难看,当你想增加更多的Li时,它会变得一团糟
因此,您只需创建一个定义ListItem的组件,并且每个组件都有自己的状态。
在List组件中使用它,如下所示
更新后编辑(误解)
列表项(或包含li和helper文本的块)应该是管理其自身状态的独立组件。
}