Saya ingin memeriksa apa yang terjadi ketika Anda menggunakan this.setState beberapa kali (2 kali demi diskusi). Saya berpikir bahwa komponen akan di-render dua kali tetapi ternyata itu hanya ditampilkan sekali. Harapan lain yang saya miliki adalah bahwa mungkin panggilan kedua untuk setState akan menjalankan yang pertama, tetapi Anda dapat menebaknya - berfungsi dengan baik.
Tautkan ke JSfiddle
var Hello = React.createClass({
render: function() {
return (
<div>
<div>Hello {this.props.name}</div>
<CheckBox />
</div>
);
}
});
var CheckBox = React.createClass({
getInitialState: function() {
return {
alex: 0
};
},
handleChange: function(event) {
this.setState({
value: event.target.value
});
this.setState({
alex: 5
});
},
render: function() {
alert('render');
return (
<div>
<label htmlFor="alex">Alex</label>
<input type="checkbox" onChange={this.handleChange} name="alex" />
<div>{this.state.alex}</div>
</div>
);
}
});
ReactDOM.render(
<Hello name="World" />,
document.getElementById('container')
);
Seperti yang akan Anda lihat, peringatan yang mengatakan 'render' muncul di setiap render.
Apakah Anda memiliki penjelasan mengapa ini bekerja dengan baik?
this.state.alex
- apa yang terjadi jika Anda menambahkan elemen yang bergantungthis.state.value
juga?