'this' 在 class 组件的函数内(反应)
'this' inside a function of a class component (react)
我正在将 class 组件转换为功能组件,但在删除 'this' 期间出现错误。
原始项目(具有 class 个组件)运行良好。但是当我从 'this.intervalID' 中删除 'this' 时,它显示错误
让我很困惑,因为'intervalID'在项目中没有声明(state,props都没有),只出现在下面的代码中(在函数startInterval()和stopInterval中)。
也许我还没有完全理解 'this' 是如何在 class 组件中使用的。谁能帮忙?也许还可以帮助我:如何将这些 'this' 转换为功能组件。
startInterval = () => {
this.intervalID = setInterval(this.updateData, 15000);
};
stopInterval = () => {
clearInterval(this.intervalID);
};
非常感谢!
您不应在功能组件中使用 'this'。
如果您需要 intervalID,可以将其保存为新状态。
MyComponent = () => {
const [intervalID, setIntervalID] = useState()
const updateData = () => {...}
startInterval = () => {
const interval = setInterval(updateData, 15000)
setIntervalID(interval)
}
stopInterval = () => {
clearInterval(intervalID)
}
}
我正在将 class 组件转换为功能组件,但在删除 'this' 期间出现错误。
原始项目(具有 class 个组件)运行良好。但是当我从 'this.intervalID' 中删除 'this' 时,它显示错误
让我很困惑,因为'intervalID'在项目中没有声明(state,props都没有),只出现在下面的代码中(在函数startInterval()和stopInterval中)。
也许我还没有完全理解 'this' 是如何在 class 组件中使用的。谁能帮忙?也许还可以帮助我:如何将这些 'this' 转换为功能组件。
startInterval = () => {
this.intervalID = setInterval(this.updateData, 15000);
};
stopInterval = () => {
clearInterval(this.intervalID);
};
非常感谢!
您不应在功能组件中使用 'this'。 如果您需要 intervalID,可以将其保存为新状态。
MyComponent = () => {
const [intervalID, setIntervalID] = useState()
const updateData = () => {...}
startInterval = () => {
const interval = setInterval(updateData, 15000)
setIntervalID(interval)
}
stopInterval = () => {
clearInterval(intervalID)
}
}