'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)
   }
}