我使用下面的代碼構建了一個組件。我們的目標是在卡片上添加一個班級,當點擊其中的按鈕時突出顯示它。但是,下面的代碼適用於第一次點擊,但不適用於後續點擊。 我知道我必須在刪除類時將其他元素的單擊狀態設置爲false。如何才能做到這一點?React js:訪問其他組件的狀態
import React, { Component } from 'react';
import './PricingCard.css';
class PricingCard extends Component {
constructor(){
super();
this.state = {
clicked : false
}
}
makeSelection(){
let elems = document.getElementsByClassName('Card');
for(var i=0;i<elems.length;i++){
elems[i].classList.remove("active");
}
this.setState({clicked: true});
}
render() {
var activeClass = this.state.clicked ? 'active' : '';
return (
<div className= {"categoryItem Card " + this.props.planName + " " +activeClass}>
<div className="cardDetails">
<div> {this.props.planName} </div>
<div className="pricing"> {this.props.price} </div>
<button onClick={this.makeSelection.bind(this)} className="buttonPrimary"> Select this plan </button>
<div className="subtitle"> {this.props.footerText} </div>
</div>
</div>
);
}
}
export default PricingCard;
「我們的目標是在卡片上添加一個班級,以便在點擊該卡片時點擊該班級。但是,下面的代碼適用於第一次點擊,但不適用於後續點擊」。您希望在下次點擊時發生什麼?切換課程? – Tomasz
@Tomasz如果我點擊一個元素,一個類將被添加到該元素中,並且同一個類將從所有其他類似元素中移除。正常元素選擇UI。 –