如何解决功能组件:当SetTimeout失败时,为什么SetInterval成功?
在我的一个Class组件中,我在一个函数中运行了该函数(以突出显示两个SVG):
this.setState({left_svgs: true});
setTimeout(function() { //Start the timer
this.setState({left_svgs: false});
this.setState({right_svgs: true});
setTimeout(function() { //Start the timer
this.setState({right_svgs: false});
}.bind(this),3000)
}.bind(this),3000)
这很好用,但是当我尝试用功能组件替换我的Class组件时,两个setTimeout()
突然立即运行,没有任何延迟。
使用箭头功能无效,但是尝试使setInterval()
运行一次即可:
setLeft_svgs(true);
var interval = setInterval(function() {
setLeft_svgs(false);
setRight_svgs(true);
var interval2 = setInterval(function() {
setRight_svgs(false);
clearInterval(interval2);
},6000);
clearInterval(interval);
},3000);
所以我愿意理解:类和功能组件运行setTimeout()
的方式之间有区别吗?它与bind()
有关系还是我不知道的?
谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。