0
基本的には、ラジオトグルボタンが選択またはチェックされているときにクラス名を追加します。私は以下のことをしてきましたが、私は本質的に同じことを二度書いているようです。同じ機能を持つこのコンポーネントを書くために、より短い/よりクリーンな方法がありますか?ReactJSのこのラジオトグルコンポーネントを書き込むためのよりきれいな方法がありますか
import React from 'react';
import classnames from 'classnames';
class RadioToggle extends React.Component {
constructor(props) {
super(props);
this.state = {
value: 'yes',
value2: 'no',
isNo: false,
isYes: false,
};
this.handleClick = this.handleClick.bind(this);
this.handleClick2 = this.handleClick2.bind(this);
}
handleClick(e) {
this.setState({
value: e.target.value,
isYes: true,
isNo: false
});
}
handleClick2(e) {
this.setState({
value2: e.target.value2,
isNo: true,
isYes: false
});
}
render() {
let classes = classnames('radioButton', {active: this.state.value && this.state.isYes == true ? 'selected' : null});
let classes2 = classnames('radioButton', {active: !this.state.value2 && this.state.isNo == true ? 'selected' : null})
return (
<div>
<input className={classes} type="radio" name="yesno" value={this.state.value} onChange={this.handleClick}/>Yes
<input className={classes2} type="radio" name="yesno" value={this.state.value2} onChange={this.handleClick2}/>No
</div>
);
}
}
export default RadioToggle;
感謝。 yes値は常にyesまたはnoでなければなりません。私は初期の負荷では未定義と思われますが、とにかく検証を追加する必要があります。 – Pizdets