ฉันต้องการตรวจสอบสิ่งที่เกิดขึ้นเมื่อคุณใช้ this.setState หลายครั้ง (2 ครั้งเพื่อประโยชน์ในการสนทนา) ฉันคิดว่าส่วนประกอบจะแสดงผลสองครั้ง แต่ดูเหมือนว่าจะแสดงผลเพียงครั้งเดียว ความคาดหวังอีกประการหนึ่งที่ฉันมีคือบางทีการเรียกที่สองสำหรับ setState จะทำงานเหนือรายการแรก แต่คุณเดาว่ามันใช้ได้
เชื่อมโยงไปยัง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')
);
ดังที่คุณจะเห็นการแจ้งเตือนที่ระบุว่า "แสดงผล" จะปรากฏขึ้นทุกครั้งที่เรนเดอร์
คุณมีคำอธิบายว่าเหตุใดจึงทำงานได้อย่างถูกต้อง?
this.state.alex
จะเกิดอะไรขึ้นหากคุณเพิ่มองค์ประกอบที่ขึ้นอยู่กับthis.state.value
ด้วย