Я хотел бы знать, как я мог бы переключать одну кнопку на зеленый цвет по одной за раз. В моем текущем коде, когда я нажимаю на одну (с намерением переключить одну из них на зеленую), она также переключает на три другие кнопки зеленые.
Примечание: white-btn
и green-btn
- классы CSSчто я определил.
Я сделал слишком много попыток перечислить здесь, чтобы попытаться исправить это. Что я делаю неправильно?
constructor(props) {
super(props);
this.state = {
white: true,
smallSize: false,
mediumSize: false,
largeSize: false,
xLargeSize: false,
};
this.smallClicked = this.smallClicked.bind(this);
this.mediumClicked = this.mediumClicked.bind(this);
this.largeClicked = this.largeClicked.bind(this);
this.xLargeClicked = this.xLargeClicked.bind(this);
}
smallClicked() {
console.log("clicked small");
this.setState({smallSize: true, mediumSize: null, largeSize: null, xLargeSize: null, white: !this.state.white});
}
mediumClicked() {
console.log("clicked medium");
this.setState({mediumSize: true, smallSize: null, largeSize: null, xLargeSize: null, white: !this.state.white});
}
largeClicked() {
console.log("clicked large");
this.setState({largeSize: true, smallSize: null, mediumSize: null, xLargeSize: null, white: !this.state.white});
}
xLargeClicked() {
console.log("clicked x-large");
this.setState({xLargeSize: true, smallSize: null, mediumSize: null, largeSize: null, white: !this.state.white});
}
render() {
let color_switch_size = this.state.white ? "white-btn" : "green-btn";
return(
<button className={color_switch_size} onClick={this.smallClicked}>Small</button>
<button className={color_switch_size} onClick={this.mediumClicked}>Medium</button>
<button className={color_switch_size} onClick={this.largeClicked}>Large</button>
<button className={color_switch_size} onClick={this.xLargeClicked}>X-Large</button>
);
}