简体   繁体   English

如何在 React 中点击应用和删除类?

[英]How to apply and remove class on click in React?

How to apply and remove CSS classes on click of multiple div (which is rendered by array of items) in react?如何在反应中单击多个 div(由项目数组呈现)来应用和删除 CSS 类?

<div 
  onClick={() => { setActiveDiv(`div${index}`) }}
  className={(activeDiv === `div${index}`) ? "activeFileName" : "inActiveFileName"}  
>
 {item?.name}
</div>

Here, you want to add 'activeFileName' on div when it's clicked and remove it when another div is clicked.在这里,您希望在单击 div 时在 div 上添加“activeFileName”,并在单击另一个 div 时将其删除。

For that, you need indexing while creating div.为此,您需要在创建 div 时建立索引。 Something like:就像是:

<div 
  data-index = {1}
  onClick={(evt) => { setActiveDiv(evt.target.getAttribute("data-index")}}
  className={(activeDiv === 1) ? "activeFileName" : "inActiveFileName"}  
>
  {item?.name}
</div>
<div 
  data-index = {2}
  onClick={(evt) => { setActiveDiv(evt.target.getAttribute("data-index")}}
  className={(activeDiv === 2) ? "activeFileName" : "inActiveFileName"}  
>
  {item?.name}
</div>

You can assign an index either dynamically using a map or some other logic.您可以使用地图或其他一些逻辑动态分配索引。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM