ฉันยังค่อนข้างใหม่ที่ React แต่ฉันค่อยๆบดไปเรื่อย ๆ และฉันเจอบางอย่างที่ฉันติดขัด
ฉันกำลังพยายามสร้างองค์ประกอบ "ตัวจับเวลา" ใน React และพูดตามตรงว่าฉันไม่รู้ว่าฉันทำถูกต้อง (หรือมีประสิทธิภาพ) ในรหัสของฉันด้านล่างผมตั้งรัฐที่จะกลับวัตถุ{ currentCount: 10 }
และได้รับ toying กับcomponentDidMount
, componentWillUnmount
และrender
และฉันเท่านั้นจะได้รับของรัฐที่จะ "นับถอยหลัง" 10-9
คำถามสองส่วน: ฉันผิดอะไร และมีวิธีที่มีประสิทธิภาพมากกว่าในการใช้ setTimeout (แทนที่จะใช้componentDidMount
& componentWillUnmount
) หรือไม่?
ขอบคุณล่วงหน้า.
import React from 'react';
var Clock = React.createClass({
getInitialState: function() {
return { currentCount: 10 };
},
componentDidMount: function() {
this.countdown = setInterval(this.timer, 1000);
},
componentWillUnmount: function() {
clearInterval(this.countdown);
},
timer: function() {
this.setState({ currentCount: 10 });
},
render: function() {
var displayCount = this.state.currentCount--;
return (
<section>
{displayCount}
</section>
);
}
});
module.exports = Clock;
bind(this)
ไม่จำเป็นอีกต่อไปทำปฏิกิริยาด้วยตัวเองในตอนนี้