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 여야합니다. 난 inital로드에 그것은 정의되지 않을 것이라고 생각하지만 어쨌든 유효성 검사를 추가해야합니다. – Pizdets