[問題] React設計timer問題

作者: e2755699 (酣酣)   2016-05-11 17:45:27
小弟剛學React不久,javascript能力也很弱
目前要做一個簡單的timer
以下是程式碼
var count = 0;
var TimerModule = React.createClass({
getInitialState: function() {
return {value: 0};
},
compenentDidMount: function() {
this.Timer = setInterval(this.Timer, 1);
},
compenentWillUnmount: function() {
clearInterval(this.Timer);
},
Timer: function(){
count++;
this.setState({ value: count });
},
render: function() {
return (<p>{this.state.value}</p>);
}
})
畫面一直在0不會動,我的理解是timer更改state後 React就會去更新畫面,
請問各位大大是我理解有誤嗎
作者: davidsky (Alive)   2016-05-11 18:01:00
你為什麼要把this.Timer給覆寫掉?而且你沒有綁定this, 進去應該是找不到setState
作者: mrbigmouth (大嘴先生)   2016-05-11 20:11:00
react不用綁定this 這裡的bug是setInterval的參數丟錯啦....你丟一個undefined進setInterval幹嘛?喔不是undefined 是數字...嗯一樓說的沒錯....Timer這個function執行時this是window 找不到setState
作者: rarex (╰(〒皿〒)╯)   2016-05-11 21:38:00
setInterval會回傳一個number 然後你又把這個number塞到this.Timer去 那this.Timer就不見啦...
作者: No (you stay there)   2016-05-11 22:29:00
component 拼錯了..
作者: windleaf (漫勉)   2016-05-12 14:32:00
快上 es6 吧
作者: dlikeayu (太陽拳vs野球拳)   2016-06-10 00:43:00
ex6 +1 箭頭函式對新手或從真OO 過來的幫助很大

Links booklink

Contact Us: admin [ a t ] ucptt.com