在react native中,使用es6语法怎么清除定时器?
我想做一个类似倒计时的效果,当倒计时为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>
)
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
现在问题已解决:
1、
componentWillUnMount() ---> componentWillUnmount()
ps:Unmount的m为小写!
2、和楼上回答一致:
把这一句 if (this.state.count == 0) {