キーボードの変更をマウスのクリックによる変更とは異なる方法で処理したい。この目的のために私は以下のコンポーネントを作成しました。私の問題は、ラジオボタンを選択するために矢印キーとスペースを使用すると、input要素からonChangeメソッドを使用する前に、親div要素のonClickメソッドを使用するということです。この動作の理由は何ですか?どうすれば正しく処理できますか?親要素のonClick onラジオボタンonChangeに反応する
class Radio extends React.Component {
constructor(props) {
super(props);
this.onChange = this.onChange.bind(this);
this.onClick = this.onClick.bind(this);
this.state = { checked: false };
}
onChange() {
this.setState({ checked: !this.state.checked });
console.log('onChange');
}
onClick() {
this.onChange();
console.log('onClick');
}
render() {
return (
<div onClick={this.onClick}>
<input
type="radio"
checked={this.state.checked}
onChange={this.onChange}
/>
Click me!
</div>
);
}
}
ReactDOM.render(<Radio />, document.getElementById('root'));
<div id="root"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.0.2/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.0.2/react-dom.min.js"></script>
非常に興味深い!あなたのソリューションはうまくいく、ありがとう。 –