组件处于卸载阶段时clearTimeinterval不起作用

问题描述 投票:0回答:1

在这里,我创建了简单的按钮,当按下给定组件的按钮在屏幕中可见时,启动 timeInterval 为 3 秒,但是当组件卸载时,我返回clearInterval 函数,但 timeInterval 仍然没有停止,所以这里有什么问题?这是代码

const ToggleComponent = () => {
  const timer = setInterval(() => {
    console.warn('3 Seconds');
  }, 3000);

  useEffect(() => {
    console.warn('Timer started');
    
  return () => {
    clearInterval(timer());
    console.warn('Timer ended');
  };
  });

  return(
    <Text style={{fontSize:20, color:'red'}}>Show Component</Text>
  );
}
react-native components
1个回答
0
投票

尝试像这样调整你的代码

    ...
    clearInterval(timer); // Remove the ()
    console.warn('Timer ended');
    ...
© www.soinside.com 2019 - 2024. All rights reserved.