私は入力要素をタイプしている間、p
要素をリアルタイムで更新しようとしています。次のリアクションコードは完全に機能します。しかし、value
属性をinput
要素から完全に削除すると、コードはまだ動作します!次のリアクションコードはなぜ機能しますか?
class ControlledInput extends React.Component {
constructor(props) {
super(props);
this.state = {
input: ''
};
}
handleInput = (event) => {
this.setState({
input: event.target.value
});
}
render() {
return (
<div>
<input
value={this.state.input}
onChange={this.handleInput} />
<p>Input: {this.state.input}</p>
</div>
);
}
};
は、だから私の質問は以下のとおりです。
value={this.state.input}
ラインは何をしますか?- なぜプログラムはまだその行なしで動作しますか?
このようにしましょう:純粋なHTMLで 'value'属性が何をするのか知っていますか? –
Reactは入力HTML自体をレンダリングし、それらの状態を保持しているので、実際には存在してはいけません。この値は、開始値の一種として使用されます。変更を開始すると、反応は変更を処理し、値を最新の状態に保ちます。このような操作を行う正しい方法は、 'ref'コールバック – Icepickle