Bereaksi bentuk dengan acara
Bagian ini akan membahas bagaimana menggunakan bentuk-bentuk di Bereaksi.
Ini adalah contoh sederhana
Dalam contoh kita menetapkan nilai darinilai kotak input input = {this.state.data}.Ketika nilai kotak input perubahan kita dapat memperbarui negara. Kita bisa menggunakan eventonChange untuk mendengarkan perubahan masukan dan memodifikasi negara.
var HelloMessage = React.createClass({ getInitialState: function() { return {value: 'Hello w3big!'}; }, handleChange: function(event) { this.setState({value: event.target.value}); }, render: function() { var value = this.state.value; return <div> <input type="text" value={value} onChange={this.handleChange} /> <h4>{value}</h4> </div>; } }); ReactDOM.render( <HelloMessage />, document.getElementById('example') );
Kode di atas akan membuat nilai Hello w3big! Elemen Input, dan diperbarui dalam menanggapi input pengguna nilai event onChange.
contoh 2
Pada contoh berikut saya akan menunjukkan kepada Anda bagaimana untuk menggunakannya pada form di sub-rakitan tersebut. MetodeonChange memicu update dan memperbarui nilai negara ditransmisikan ke kotak input sub-perakitan nilaiup re-render interface.
Anda perlu komponen orang tua ditransmisikan ke sub-perakitan dengan menciptakan sebuah event handler(handleChange), dan sebagai penyangga(updateStateProp).
var Content = React.createClass({ render: function() { return <div> <input type="text" value={this.props.myDataProp} onChange={this.props.updateStateProp} /> <h4>{this.props.myDataProp}</h4> </div>; } }); var HelloMessage = React.createClass({ getInitialState: function() { return {value: 'Hello w3big!'}; }, handleChange: function(event) { this.setState({value: event.target.value}); }, render: function() { var value = this.state.value; return <div> <Content myDataProp = {value} updateStateProp = {this.handleChange}></Content> </div>; } }); ReactDOM.render( <HelloMessage />, document.getElementById('example') );
bereaksi acara
Contoh berikut menunjukkan untuk memodifikasi data melalui event onClick:
var HelloMessage = React.createClass({ getInitialState: function() { return {value: 'Hello w3big!'}; }, handleChange: function(event) { this.setState({value: '本教程'}) }, render: function() { var value = this.state.value; return <div> <button onClick={this.handleChange}>点我</button> <h4>{value}</h4> </div>; } }); ReactDOM.render( <HelloMessage />, document.getElementById('example') );
Bila Anda perlu memperbaruinegara dari komponen induk sub-perakitan, Anda perlu komponen orangtua dengan menciptakan sebuah event handler (handleChange),dan dikirim ke subassembly Anda sebagaipenyangga(updateStateProp). Contohnya adalah sebagai berikut:
var Content = React.createClass({ render: function() { return <div> <button onClick = {this.props.updateStateProp}>点我</button> <h4>{this.props.myDataProp}</h4> </div> } }); var HelloMessage = React.createClass({ getInitialState: function() { return {value: 'Hello w3big!'}; }, handleChange: function(event) { this.setState({value: '本教程'}) }, render: function() { var value = this.state.value; return <div> <Content myDataProp = {value} updateStateProp = {this.handleChange}></Content> </div>; } }); ReactDOM.render( <HelloMessage />, document.getElementById('example') );