首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Div出现并消失在“反应钩”中。

Div出现并消失在“反应钩”中。
EN

Stack Overflow用户
提问于 2022-10-12 08:11:20
回答 1查看 66关注 0票数 0

我想要一个像(在onclick之前)(在oncilck之后).Just这样的效果,点击哪个div使它消失,然后让消失的div在再次显示之前。

这是数据代码(只是一个数组)。我想要数据中的“显示”变量来控制是否要执行display.But,我不知道如何在click函数中实现对数组的析构分配。

谢谢你的回答!

代码语言:javascript
复制
const leftBarData=
[{
    name:"关于音乐",
    color:"bg-music-color",
    icon:<div className="iconMusicSize">
        <svg viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
            blahblah
        </svg>
    </div>,
    link:"/music",
    number:0,
    show:true,
},
    {
        name:"关于编程",
        color:"bg-code-color",
        icon:<div className="iconSize">
            <svg viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
                blah
            </svg>
        </div>,
        link:"/code",
        number:1,
        show:true,
    },
    {
        name:"关于设计",
        color:"bg-design-color",
        icon:<div className="iconSize">
            <svg viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
                blah
            </svg>
        </div>,
        link:"/design",
        number:2,
        show:false
    },
    {
        name:"关于本人",
        color:"bg-about-color",
        icon:<div className="iconSize">
            <svg viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
                blah
            </svg>
        </div>,
        link:"/design",
        number:3,
        show:true
    }
]

这是地图。

代码语言:javascript
复制
const [statusData,setStatusData]=useState(leftBarData)
const changeBar=(pars)=>
    {
        how to achieve it
    }

<div className="flex fixed">
        {statusData?.map((index,i)=>(
            <Link to={index.link}>
                <div className={` ${index.color} ${index.show?"":"hidden"} w-99 h-screen pt-9 `} onClick={()=>changeBar(index)}>
                    <div className="flex flex-col h-full items-center justify-between">
                            {index.icon}
                        <div className="-rotate-90 -translate-y-full mb-10">
                            <div className="h3 text-white whitespace-nowrap">{index.name}</div>
                        </div>
                    </div>
                </div>
            </Link>
        ))}
    </div>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-12 08:23:43

您可以使用map()状态数据来切换单击元素的show属性,如下所示:

代码语言:javascript
复制
const changeBar = pars => {
    setStatusData(data => data.map(item => (
        item === pars
        ? {
            ...item,
            show: !item.show
        }
        : item
    )));
};
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74038517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档