私はこれに続いてdocumentationと反応してselectタグを作成しました。
私はこの問題を編集しました。selectでclassName = "browser-default"を使用すると問題なく動作します。しかし、マテリアライズするためには選択されていません。
私の場合、onChangeイベントが機能していません。この関数は呼び出されません。私のonChangeが反応していない
import React from 'react';
class Upload extends React.Component{
constructor(props){
super(props);
this.state={
degree:''
}
this.upload=this.upload.bind(this);
this.degreeChange=this.degreeChange.bind(this);
}
componentDidMount() {
$('select').material_select();
}
degreeChange(event){
this.setState({degree:event.target.value});
console.log(this.state.degree);
}
upload(){
alert(this.state.degree);
}
render() {
return (
<div className="container">
<form onSubmit={this.upload}>
<div className="input-field col s4">
<select value={this.state.degree} onChange={this.degreeChange}>
<option value="" disabled>Choose Degree</option>
<option value="B.E">B.E</option>
<option value="B.Tech">B.Tech</option>
</select>
</div>
<div className="row center-align">
<input className="waves-effect waves-light btn centre-align" type="submit" value="Submit"/>
</div>
</form>
</div>
);
}
}
ここでエラーは発生しませんが、私のdegreeChange関数は呼び出されません。私は私の誤りが何かを得ていない。
[ドロップダウンのためのJSに反応用いOnChangeイベント]の可能な重複(http://stackoverflow.com/questions/28868071/onchange-event-using-react-js-for-drop-down) –
@JohnRuddell、私はこの質問が貼り付けられたリンクと重複していないと考えています。これはsetState **の非同期性**に関連していますが、これは 'onChange'という問題はありません。 –
[選択したドロップダウンから最新の値を取得する方法](http://stackoverflow.com/questions/39506293/how-to-get-the-latest-value-from-selected-drop-down) –