ใน react.js ควรเก็บการอ้างอิงการหมดเวลาเป็นตัวแปรอินสแตนซ์ (this.timeout) หรือตัวแปรสถานะ (this.state.timeout) ดีกว่าไหม
React.createClass({
handleEnter: function () {
// Open a new one after a delay
var self = this;
this.timeout = setTimeout(function () {
self.openWidget();
}, DELAY);
},
handleLeave: function () {
// Clear the timeout for opening the widget
clearTimeout(this.timeout);
}
...
})
หรือ
React.createClass({
handleEnter: function () {
// Open a new one after a delay
var self = this;
this.state.timeout = setTimeout(function () {
self.openWidget();
}, DELAY);
},
handleLeave: function () {
// Clear the timeout for opening the widget
clearTimeout(this.state.timeout);
}
...
})
ทั้งสองวิธีนี้ใช้ได้ผล ฉันแค่อยากรู้เหตุผลในการใช้อย่างอื่น
เคล็ดลับ: ใช้การผูกอัตโนมัติของ React:
—
David Hellsing
this.timeout = setTimeout(this.openWidget, DELAY);
ควรตั้งค่า DELAY เป็นอะไร?
—
justingordon
this.state
โดยตรงเพราะการโทรsetState()
หลังจากนั้นอาจแทนที่การกลายพันธุ์ที่คุณทำได้ให้ปฏิบัติthis.state
ราวกับว่ามันไม่เปลี่ยนรูป"