如何切换动态div下拉菜单NEXT.JS

吉辛·瓦吉斯(Jithin Varghese)

我正在使用NEXT.JS和REDUX建立电子商务商店。在产品列表页面中,我有包含大小,颜色等的过滤器部分。单击标题时,内容应切换。我尝试使用下面的代码,但无法正常工作。

const [showMe, setShowMe] = useState(0);

function toggle(index) {
    setShowMe(index);
}

<div className="other">
    <h6>Refine</h6>
    <hr/>
    {products.filter.map((item, index) => (
        <div key={index}>
            <div className="single">
                <div className="title" onClick={() => toggle(index)}>
                    <p className="float-left">{item.title}</p>
                    <p className="float-right"><FontAwesomeIcon icon={showMe === index ? faChevronUp : faChevronDown}/></p>
                </div>
                <ul style={{display: showMe === index ? "block" : "none"}}>
                    {item.items.map((single, index1) => (
                        <li key={index1}>
                            <label><input type="checkbox" name="checkbox" value="value"/> {single.items_value}</label>
                        </li>
                    ))}
                </ul>
            </div>
            <hr/>
        </div>
    ))}
</div>

最初索引0是打开的,其他索引是关闭的。Onclick索引0不会关闭。Onclick索引1打开,索引0关闭。

我想要输出,因为最初所有下拉列表都应该打开。单击每个div后,应将其关闭,然后单击它,则应将其打开。如何更改我的代码以实现此目的。

堆积Q

您需要检查单击的项目是否已打开,可以setState在其setter功能的第一个参数中获取a的当前值

// use an empty array for intial value:
const [showMe, setShowMe] = useState([]);

// after you got `products`:
setShowMe(Array(products.filter.length).fill(0).map((_, index) => index))

function toggle(index) {
    setShowMe(currentShowMe => currentShowMe.includes(index)
      ? currentShowMe.filter(i => i !== index)
      : [...currentShowMe, index]);
}
...
<ul style={{display: showMe.includes(index) ? "block" : "none"}}>
...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用基因敲除.js基于选择下拉菜单切换按钮状态

来自分类Dev

Next.js切换div标签的显示

来自分类Dev

动态下拉菜单节点js

来自分类Dev

d3js动态csv从下拉列表切换

来自分类Dev

在DIV Angular JS之间切换

来自分类Dev

如何在React JS的表格单元内嵌入动态下拉菜单?

来自分类Dev

如何使用JS切换按钮

来自分类Dev

宽度超过宽度时,如何切换菜单下拉菜单的方向?

来自分类Dev

Bootstrap Collapse.js切换菜单的“隐藏/显示”

来自分类Dev

重新加载动画(切换菜单)JS

来自分类Dev

如何摆脱下拉菜单中的下拉菜单选项/空白空间-角JS?

来自分类Dev

如何摆脱下拉菜单中的下拉菜单选项/空白空间-角JS?

来自分类Dev

避免双击切换Bootstrap下拉菜单

来自分类Dev

多级下拉菜单有切换问题

来自分类Dev

多级下拉菜单切换无法使用jQuery

来自分类Dev

样式切换器的下拉菜单

来自分类Dev

下拉菜单下推内容。最大高度切换

来自分类Dev

Bootstrap 导航栏下拉菜单不会切换

来自分类Dev

Jquery 条件下拉菜单切换

来自分类Dev

如何手动切换angular-ui-select下拉菜单

来自分类Dev

如何使用同级选择器在下拉菜单上切换箭头

来自分类Dev

VS Code:如何在代码和终端之间切换*不**关注下拉菜单

来自分类Dev

如何将 Bootstrap 的下拉菜单定位到浮动右侧切换元素的右侧?

来自分类Dev

如何使用散景中的下拉菜单在数字之间切换?

来自分类Dev

如何滑动Selectize.js下拉菜单?

来自分类Dev

如何使用PHP / JS计算下拉菜单的值?

来自分类Dev

如何滑动Selectize.js下拉菜单?

来自分类Dev

如何使用 JS 创建响应式下拉菜单?

来自分类Dev

Vue.js 如何在 v-for 循环内切换单个 v-if div?

Related 相关文章

热门标签

归档