Stephen GriderのUdemy "Modern React with Redux"コースでは、入力要素のvalue
が、その値を設定するonChange
イベントによって変更される例が示されています。具体的には、この関数は次のようになります。React制御コンポーネントはどのように更新できますか?
onChange= function(event){
this.setState({ term: event.target.value})
}
と入力コンポーネントは次のようになります、私はevent.target.value
が私の目にするときに更新することができますどのように理解していない
<input value = {this.state.term} />
状態がevent.target.value
に「ハードコードさ」でありますつまり、コンポーネントがレンダリングされるときには、空の文字列です。したがって、state.term
が""
で、入力のvalue
がオーバーライドされ、state.term
に設定されている場合、どのように更新できますか?
import React, { Component } from 'react';
class SearchBar extends Component {
constructor (props) {
super(props);
this.state = { term: '' };
}
render() {
return(
<div>
<input
value = {this.state.term}
onChange={event => this.setState({ term: event.target.value})} />
</div>
);
}
}
export default SearchBar;
EDITは:基本的に私は私の質問は、まで来ると思う:event.target.value
として<input>
要素のvalue
同じものということですか?
EDIT2:単語の参照渡しの意味でのJavascriptの「同じもの」、つまり両方が同じオブジェクトの同じ値を参照していますか?
を決定し、私は私のQUを推測しますestionは、 'event.target.value'によって' input.value'と全く同じ要素が指す要素ではありませんか?ビデオでは、「rを押すと、入力の値は変更されていません。コンポーネントが再表示されたときにのみ変更されます。 –
それは正しいです。レンダリングでconsole.logを設定して、それを証明することができます。 – imjared
次に、 'event.target.value'は' input [value] 'と同じデータを参照してはいけません。 –