[问题] 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