[解決済み] ReactJSでドロップダウンメニューの選択値を取得する方法
2023-05-13 17:30:24
質問
reactを使っているのですが、reactでドロップダウンの選択されたオプションの値を取得したいのですが、方法がわかりません。何か提案はありますか? ありがとうございます 私のドロップダウンは、ちょうどのような選択です。
<select id = "dropdown">
<option value="N/A">N/A</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
どのように解決するのですか?
のコードは
render
メソッドは任意の時点のコンポーネントを表します。
もし、あなたが
のようなものを
のようにした場合、ユーザーはフォームコントロールを使用して選択することができなくなります。
<select value="Radish">
<option value="Orange">Orange</option>
<option value="Radish">Radish</option>
<option value="Cherry">Cherry</option>
</select>
つまり、フォームコントロールの操作には2つの解決策があります。
-
制御されたコンポーネント
使用コンポーネント
state
を使用して、ユーザーの選択を反映させます。これは最もコントロールしやすい方法です。state
に加えた変更は、コンポーネントのレンダリングに反映されるからです。
の例です。
var FruitSelector = React.createClass({
getInitialState:function(){
return {selectValue:'Radish'};
},
handleChange:function(e){
this.setState({selectValue:e.target.value});
},
render: function() {
var message='You selected '+this.state.selectValue;
return (
<div>
<select
value={this.state.selectValue}
onChange={this.handleChange}
>
<option value="Orange">Orange</option>
<option value="Radish">Radish</option>
<option value="Cherry">Cherry</option>
</select>
<p>{message}</p>
</div>
);
}
});
React.render(<FruitSelector name="World" />, document.body);
JSFiddleです。 http://jsfiddle.net/xe5ypghv/
-
制御不能なコンポーネント もう一つの選択肢は、値を制御せず、単に
onChange
イベントに応答することです。この場合はdefaultValue
プロパティを使用して初期値を設定することができます。<div> <select defaultValue={this.state.selectValue} onChange={this.handleChange} > <option value="Orange">Orange</option> <option value="Radish">Radish</option> <option value="Cherry">Cherry</option> </select> <p>{message}</p> </div>
http://jsfiddle.net/kb3gN/10396/
これのドキュメントは素晴らしいです。 http://facebook.github.io/react/docs/forms.html で、複数選択を扱う方法も紹介されています。
最新情報
オプション 1 (制御されたコンポーネントを使用) のバリエーションとして
Redux
と
リアクト-リダックス
を作成し
コンテナ・コンポーネント
. これには
connect
と
mapStateToProps
という関数があり、これは思ったより簡単ですが、始めたばかりならやりすぎかもしれません。
関連
-
[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
-
[解決済み] どのラジオボタンが選択されているかをjQueryで知るにはどうしたらよいですか?
-
[解決済み] セレクタの子を取得する方法は?
-
[解決済み] Javascriptで文字列の最後の文字を切り取るにはどうしたらいいですか?
-
[解決済み] JavaScriptでドロップダウンリストの選択値を取得する
-
[解決済み] Reactルータを使ったプログラムによるナビゲーション
-
[解決済み] jQuery get specific option tag text
-
[解決済み】JavaScriptの比較では、どちらの等号演算子(== vs ===)を使うべきですか?
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
-
[解決済み] Google maps API V3 - 同一地点に複数のマーカーを設置する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JavaScript で範囲を作成する - 奇妙な構文
-
[解決済み] javascriptで2つの数値を連結する方法は?
-
[解決済み] 文字列がhtmlであるかどうかをチェックする
-
[解決済み] jQueryの$という記号の意味は何ですか?
-
[解決済み] BlobからArrayBufferへ移行する方法
-
[解決済み] モデルフェッチ時に1をtrueに、0をfalseに変換する方法
-
[解決済み] JavaScriptでjson-objectのキーを取得する [重複].
-
[解決済み] JavaScriptで長い配列を小さい配列に分割する方法
-
[解決済み] これは純関数ですか?
-
[解決済み] React.jsのフォームコンポーネントでstateやrefsを使う?