繁体   English   中英

从 static function 调用时不调用 setTimeout

[英]setTimeout is not called when called from a static function

我有一个名为 initTimer() 的实用程序 typescript class 和一个 static function,这个 function 调用 setTimeout。 然而,当这个 static function 从反应组件调用时,计时器没有启动!

StyleWrapper.tsx

const StyleWrapper: FC = (props) => {
  const arrangeTiles = () => {
    StyleUtil.initTimer();
  };
  return (
    <Context.Provider value={{ arrangeTiles }}>
      <div id="cnplStyleWrapper">{props.children}</div>
    </Context.Provider>
  );
};

样式实用程序.tsx

export class StyleUtil{
    public static initTimer(){
      const timeoutId = window.setTimeout(() => {
        console.log("Timeout Called!!");        
       }, 100);
    }
}

当我将超时值设置为 0 时,控制台语句将记录在控制台中,但 0 以外的任何值都不会将日志语句记录在控制台中。 奇怪,我是不是在概念上遗漏了什么?

我认为调用方法有问题<Context.Provider value={{ arrangeTiles }}>你必须调用arrangeTiles()它是一个方法而不是一个组件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM