作者e2755699 (酣酣)
看板Ajax
标题[问题] React设计timer问题
时间Wed May 11 17:45:27 2016
小弟刚学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就会去更新画面,
请问各位大大是我理解有误吗
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.216.118.24
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Ajax/M.1462959929.A.2DE.html
1F:推 davidsky: 你为什麽要把this.Timer给覆写掉? 05/11 18:01
2F:→ davidsky: 而且你没有绑定this, 进去应该是找不到setState 05/11 18:03
3F:→ mrbigmouth: react不用绑定this 这里的bug是setInterval的参数丢 05/11 20:11
4F:→ mrbigmouth: 错啦....你丢一个undefined进setInterval干嘛? 05/11 20:11
5F:→ mrbigmouth: 喔不是undefined 是数字... 05/11 20:12
6F:→ mrbigmouth: 嗯一楼说的没错....Timer这个function执行时this是win 05/11 20:12
7F:→ mrbigmouth: dow 找不到setState 05/11 20:12
8F:→ rarex: setInterval会回传一个number 然後你又把这个number塞到 05/11 21:38
9F:→ rarex: this.Timer去 那this.Timer就不见啦... 05/11 21:39
10F:推 No: component 拼错了.. 05/11 22:29
GANN....真的是component拼错惹
想请教一下我这个例子timer要如何绑定阿
一般看到的例子都是匿名後面直接.bind
请问各位大大在写react都用什麽工具在debug阿?
※ 编辑: e2755699 (61.216.118.24), 05/12/2016 09:11:29
11F:推 windleaf: 快上 es6 吧 05/12 14:32
12F:→ dlikeayu: ex6 +1 箭头函式对新手或从真OO 过来的帮助很大 06/10 00:43