【发布时间】:2021-10-18 15:55:07
【问题描述】:
我有一种情况,一旦我点击一张图片,我希望它有一个边框。如果我再次单击它,我希望删除该边框。但是,如果单击另一个图像,我也希望删除(或“移动”)该边框!
我想有几种方法可以解决这个问题 - 我不知道如何实现:
- 清除所有图像的边框
- 跟踪先前的状态并以这种方式获取元素
我使用的是从曾祖父母那里传下来的状态,所以我不确定我是否可以发布所有脚本 - 我会尝试将其保留在 sn-ps 中。
我的图片:使用“下一个/图片”
return(
<div key={attr} id={attrprops.attrChoice+':'+attr}>
<Image
src={imgSourceUrl}
alt={attrprops.alt}
width={attrprops.w}
height={attrprops.h}
onClick={()=>{ attrprops.setButtonClick(!attrprops.buttonClick);
attrprops.setBorder(attrprops.selectedAttr==attr ? false : true);
attrprops.setSelectedAttr(attr);
}}
/>
<br></br>
<div className='flex justify-center align-center'>{attr}</div>
</div>
);
我的状态变化:
useEffect(()=>{
if (border&&buttonClick){
document.getElementById(`body_type:${selectedAttr}`).className = 'border-2 border-blue-500';
publishprops.setAttrNumber(4);
}
else if (!border&&buttonClick){
document.getElementById(`body_type:${selectedAttr}`).className = 'border:none';
publishprops.setAttrNumber(2);
}
},[border])
目前的方式,它只为选定的图像添加边框。真的不知道该走哪条路……
【问题讨论】:
标签: javascript reactjs next.js