Reactによく出てくるthisなどいくつか理解できない
Q&A
Closed
React初心者です(JSも初級者です)。
Reactによく出てくる thisが何を指しているか理解できないなど、いくつかわからないことがあり、質問させていただきます。
1.[わからない1]:super(props)のpropsに何が入っているか
2.[わからない2]:this.handleChange = this.handleChange.bind(this);の bind(this)に何が入っているかわからない
3.[わからない3]:handleSubmitメソッドの中の、event.preventDefault();が何のためにあるかわからない
4.[わからない4]:thisの中身を確認する方法 console.log(this);
どうぞよろしくお願いします。
下のコードは、
- ReactのFormを解説してあるページ
- 動くサンプルcodepen
にあった
this.handleChange = this.handleChange.bind(this); です。
class FlavorForm extends React.Component {
//FlavorFormというクラスのコンストラクタ(最初に必ず読み込まれる部分)
//[わからない1]:propsには引数、ここだとselectのvalueが入る? でもthis.stateには入っているのがわかるけど、 super(props)のpropsにはどうやって入るのかわからない
constructor(props) {
super(props);
this.state = {value: 'coconut'};
//[わからない2]:このクラスの handleChangeメソッドは、setStateでイベントが発生した時に発動するのはわかるが、3つ目のthisに何が入っているかがよくわからない、変更したvalueの内容?かとは思うのですが、、
//(このクラスの).handleChange = (このクラスの).handleChange.bind(変更したvalueの内容?);
this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
}
//formのselectのvalueが変化した時のメソッド
//引数のeventに、valueの値が入る
handleChange(event) {
this.setState({value: event.target.value});
}
//formが送信された時にアラートを出すメソッド
//引数のeventに、this.stateのvalueが入る
//[わからない3]: なぜpreventDefaultがしてあるのか?がわからない
handleSubmit(event) {
alert('Your favorite flavor is: ' + this.state.value);
event.preventDefault();
}
render() {
return (
<form onSubmit={this.handleSubmit}>
<label>
Pick your favorite flavor:
<select value={this.state.value} onChange={this.handleChange}>
<option value="grapefruit">Grapefruit</option>
<option value="lime">Lime</option>
<option value="coconut">Coconut</option>
<option value="mango">Mango</option>
</select>
</label>
<input type="submit" value="Submit" />
</form>
);
}
}
//FlavarFormをrootにレンダー
ReactDOM.render(
<FlavorForm />,
document.getElementById('root')
);