html形式では、この選択メニューがあります。これは、ユーザーが後で編集して値を変更できるプロファイルのようなものです。ここでは、フォームをレンダリングしているFirstComponent
コードは次のとおりです。ReactJSのドロップダウンメニューの値を更新
export const FirstComponent = React.createClass({
handleLanguageCode: function(langValue) {
this.setState({
language: langValue
});
},
renderField() {
return (
<div>
<SelectLanguage onSelectLanguage={this.handleLanguageCode} defValue={getValue()} />
</div>
);
}
)}
ユーザーがフォームを編集したい場合は、getValue()
はSelectLanguage
コンポーネントに現在の値を送信します。
問題は、ユーザーがドロップダウンメニューから新しい値を選択したときに更新されないということです。以前の値は引き続き表示されます。私はそれを処理する関数handleLangChange
を書く方法を知らない。私はいくつかの方法を試しましたが、結果を得ることができませんでした:/それを修正するために誰も助けることができますか?
私はちょうどあなたの変更を追加しました。 'handleLanguageCode'が新しい値を得ていることがわかりました(' console.log(langValue); 'は新しい選択された値を出力します)。しかし、このドロップダウンではまだ変化が見られません。また、私はこの警告を受け取ります: '警告:bind():コンポーネントメソッドをコンポーネントにバインドしています。 Reactはこれを自動的に高性能で行いますので、この呼び出しを安全に削除することができます。 ' – Birish
また、これらの2行を 'handleLangChange'に追加しました:' this.setState({value:val.name}); ' 'this.props.onSelectLanguage(val.id); ' – Birish
@ vivian:私は本当に'バインド 'が必要ないと思う、それは明らかに自動的にそれを行う! – Birish