[英]toggle class div elements in react.js
Hi I am newbie in Reactjs.嗨,我是 Reactjs 的新手。
I am trying to make each different toggle div classes when click buttons.单击按钮时,我正在尝试制作每个不同的切换 div 类。
import React from 'react';
class Home extends React.Component{
state = { isActive: false };
handleToggle = () => {
this.setState({ isActive: !this.state.isActive });
};
render(){
const isActive = this.state.isActive;
return (
<>
<button onClick={this.handleToggle} className={isActive ? "btn1" : "btn-on1"}>Toggle class1</button>
<div className={isActive ? "box1" : "box-active1"}>11</div>
<br />
<button onClick={this.handleToggle} className={isActive ? "btn2" : "btn-on2"}>Toggle class2</button>
<div className={isActive ? "box2" : "box-active2"}>22</div>
</>
)
}
}
export default Home;
The problem is when click button, both button toggle together at same time.问题是单击按钮时,两个按钮同时切换。 I want to make them each button toggle only itself.我想让它们每个按钮都只切换自己。
How do I fix it?我如何解决它?
I think you could achieve this by changing the state from boolean so it can refer to a specific div:我认为您可以通过从 boolean 更改 state 来实现此目的,因此它可以引用特定的 div:
state = { isActive: '' };
handleToggle = (btn) => {
this.setState({ isActive: btn });
};
render(){
const isActive = this.state.isActive;
return (
<>
<button onClick={() => this.handleToggle('button1')} className={isActive === 'button1' ? "btn1" : "btn-on1"}>Toggle class1</button>
<div className={isActive === 'button1' ? "box1" : "box-active1"}>11</div>
<br />
<button onClick={() => this.handleToggle('button2')} className={isActive === 'button2' ? "btn2" : "btn-on2"}>Toggle class2</button>
<div className={isActive === 'button2' ? "box2" : "box-active2"}>22</div>
</>
)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.