小编Was*_*ing的帖子

如何清除卸载时自动重启功能的超时?

我正在使用从服务器获取数据以更新加载日志表的功能。

为此,我将超时设置为15秒,该超时在函数内部调用。我需要在componentWillUnmount上清除此超时,因为它会修改状态,并且我不需要弄乱已卸载组件的状态。

// LogTable is my component
const LogTable = () => {
  let timerId
  const getLoadingData = () => {
    //does something
    timerId = setTimeout(getLoadingData, 15000)
    //more code
  }

  useEffect(() => {
    return function cleanup() {
      clearTimeout(timerId)
    };
  }, []);
}
Run Code Online (Sandbox Code Playgroud)

上面的代码不起作用,因为timerIduseEffect函数内部未定义,并且我不知道如何解决。

javascript reactjs react-hooks

2
推荐指数
1
解决办法
61
查看次数

标签 统计

javascript ×1

react-hooks ×1

reactjs ×1