我使用react-slick轮播与自定义控件。我只想添加'活动'类到更改幻灯片的元素(通过onClick事件)。但在我的情况下,“积极”的班级切换所有人。将类添加到React onClick中的特定元素
export default class ServicesSlider extends React.Component {
constructor(props) {
super(props)
this.changeSlide = this.changeSlide.bind(this)
this.state = {
isActive: false
}
}
changeSlide(e) {
this.setState({
isActive: !this.state.isActive
});
this.slider.slickGoTo(e);
}
render() {
return (
<div>
<section className="carousel-controls">
<div
onClick={() => this.changeSlide(0)}
className={this.state.isActive
? 'column' : 'column active'}>Slide one
</div>
<div
onClick={() => this.changeSlide(1)}
className={this.state.isActive
? 'column' : 'column active'}>Slide two
</div>
<div
onClick={() => this.changeSlide(2)}
className={this.state.isActive
? 'column' : 'column active'}>Slide three
</div>
<div
onClick={() => this.changeSlide(3)}
className={this.state.isActive
? 'column' : 'column active'}>Slide four
</div>
</section>
<Slider ref={c => this.slider = c}>
<div className="sliderItem">Slide 1</div>
<div className="sliderItem">Slide 2</div>
<div className="sliderItem">Slide 3</div>
<div className="sliderItem">Slide 4</div>
</Slider>
</div>
)
}
}
如何正确追加类到React中的特定元素?
保持活跃类的,而不是一个单一的国家 –
你传递一个索引changeSlide,但只有切换活动状态的状态数组。因此状态将是一个布尔值,true或false,而不是表示当前活动元素的整数 – Matthew