setInterval - 'interval' 未定义
setInterval - 'interval' is not defined
我的 React 应用程序中有一个 setTimer 函数,它使用 setInterval
挂钩来增加我的 sec
变量。
function setTimer() {
if (!started) {
setStarted(true);
const interval = setInterval(() => {
setSec(prevProps => {
return {sec: prevProps.sec+1}
})
}, 1000)
}
}
但是在这个方法之上,我有一个 onFinish
方法,它在满足条件时被调用。在这个方法中,我使用 clearInterval
并传递 interval
。现在,当我使用 class 组件时它可以正常工作,因为我可以访问 this
。但是现在我已经从 class 组件切换到功能组件。而且我认为该程序没有识别出我的 interval
变量。
function onFinish() {
if (text.length-1 === symbols) {
clearInterval(interval);
setPopup(true)
setFinished(true)
setStarted(false)
}
}
我最近才开始学习一般的反应和 js,所以这可能是一个非常明显的答案,但看在上帝的份上我可以弄明白。我怎样才能避免这个错误?
const 是块作用域的,所以你的变量在花括号之外是不可访问的:{}
.
let interval = null;
function setTimer() {
if (!started) {
setStarted(true);
interval = setInterval(() => {
setSec(prevProps => {
return {sec: prevProps.sec+1}
})
}, 1000)
}
}
我的 React 应用程序中有一个 setTimer 函数,它使用 setInterval
挂钩来增加我的 sec
变量。
function setTimer() {
if (!started) {
setStarted(true);
const interval = setInterval(() => {
setSec(prevProps => {
return {sec: prevProps.sec+1}
})
}, 1000)
}
}
但是在这个方法之上,我有一个 onFinish
方法,它在满足条件时被调用。在这个方法中,我使用 clearInterval
并传递 interval
。现在,当我使用 class 组件时它可以正常工作,因为我可以访问 this
。但是现在我已经从 class 组件切换到功能组件。而且我认为该程序没有识别出我的 interval
变量。
function onFinish() {
if (text.length-1 === symbols) {
clearInterval(interval);
setPopup(true)
setFinished(true)
setStarted(false)
}
}
我最近才开始学习一般的反应和 js,所以这可能是一个非常明显的答案,但看在上帝的份上我可以弄明白。我怎样才能避免这个错误?
const 是块作用域的,所以你的变量在花括号之外是不可访问的:{}
.
let interval = null;
function setTimer() {
if (!started) {
setStarted(true);
interval = setInterval(() => {
setSec(prevProps => {
return {sec: prevProps.sec+1}
})
}, 1000)
}
}