为什么会出现此错误?
相关代码:
this.state = {
now: 0
}
setInterval(function () {
this.setState({ now: this.state.now + 1});
}, 100);
我现在尝试增加以更新ProgressBar。
答案 0 :(得分:0)
您的问题是,当您在函数内部引用“ this”时,这是函数本身而不是外部上下文。 如果您使用的是ecmascript,则可以使用箭头功能
this.state = {
now: 0
}
setInterval(() =>{
this.setState({ now: this.state.now + 1});
}, 100);
带有箭头功能“ this”的含义不同。
或者您也可以像这样在上下文之外创建引用。
this.state = {
now: 0
}
let self = this;
setInterval(function () {
self.setState({ now: self.state.now + 1});
}, 100);
答案 1 :(得分:-1)
可能是在间隔函数运行“ this”时与调用setInteval时的含义不同
您可以尝试这样的事情
wwwhaaaat