我想做一个类似倒计时的效果,当倒计时为0的时候,计时器停止,但是目前不知道怎么做,求大神解答,谢谢!新手求助!目前有如下代码:const totalCount = 10;class Register extends Component { ... // 构造 constructor(props) { super(props); // 初始状态 this.state = { count: totalCount }; this.componentWillUnMount = this.componentWillUnMount.bind(this); } componentWillUnMount() { clearInterval(this.timer);//FIXME:无法实现卸载时清除计时器 } count() { this.timer = setInterval(()=>this.setState({ count: this.state.count - 1 } ), 1000); if (this.state.count == 0) { //clearTimeout(this.timer)//FIXME:确定程序可以走到这里,但是无法实现清除计时器 clearInterval(this.timer); } } render() { return( ... <TouchableOpacity onPress={this.count.bind(this)} disabled={!(this.state.count == totalCount || this.state.count == 0)}> ... </TouchableOpacity> ) }}
1 回答

慕村225694
TA贡献1880条经验 获得超4个赞
现在问题已解决:
1、componentWillUnMount() ---> componentWillUnmount()
ps:Unmount的m为小写!
2、和楼上回答一致:
count() { this.timer = setInterval(()=> { this.setState({ count: this.state.count - 1 }); if (this.state.count == 0) { clearInterval(this.timer); } }, 1000); }
添加回答
举报
0/150
提交
取消