2016-04-01 3 views
0

input type="radio"を設定して、ユーザーが選択する状態の値が変わるようにするにはどうすればよいですか?状態を変更するラジオボタンの選択

この場合、ボタンname="1"をデフォルトの選択ボタンにしたいが、ボタンname="2"が選択されている場合は、状態値が変更されるはずです。

<div data-toggle="buttons"> 
    <label> 
    <input type="radio" name="1" defaultChecked onChange={this.handleRadioButton}>Option 1</input> 
    </label> 
    <label> 
    <input type="radio" name="2" onChange={this.handleRadioButton}>Option 2</input> 
    </label> 
</div> 

答えて

1

handleRadioButtonにはどのボタンがクリックされたかを知らせる必要があります。私は単純な関数パラメータを提案します。すなわち

onChange={() => this.handleRadioButton(1)}

onChange={() => this.handleRadioButton(2)}

あなたの関数は次のようになります。

handleRadioButton(value) { 
    this.setState({ 
    value: value 
    }); 
} 

最後に、チェック状態は、その状態値から読み取る必要があります。すなわち

checked={this.state.value === 1}

のでカップルより多くの事...一緒に

<input type="radio" checked={this.state.value === 1} onChange={() => this.handleRadioButton(1)} />

<input type="radio" checked={this.state.value === 2} onChange={() => this.handleRadioButton(2)} />

をそれをすべて置く:

  • defaultCheckedと気にしないでくださいプロパティ。初期状態でvalue: 1と設定してください。
  • namevalueなどのHTML属性は必要ありません。 Reactでは、HTMLロジックはJavaScriptロジックに取って代わられています。 (警告:非JSレンダリングされたサーバーを提供している場合を除き)
+0

本当に有益です - ありがとうございます! – zahabba

+0

これを試してみると、残念ながら 'handleRadioButton'関数は呼び出されません。 (私はダブルチェックするconsole.logを追加しました)何が間違っている可能性がある任意のアイデア? – zahabba

+0

コンポーネントをどのように定義したらいいか分かります。コードを表示する新しい投稿を作成してください。 –

関連する問題