Reactjs 类型为'的参数;()=>;超时';不可分配给类型为';编号';
我试图用Reactjs 类型为'的参数;()=>;超时';不可分配给类型为';编号';,reactjs,typescript,Reactjs,Typescript,我试图用组件willunmount上的React和TypeScript清除超时,但出现以下错误: “()=>Timeout”类型的参数不能分配给“number”类型的参数。ts(2345) 这是我的密码: startPolling=():ReturnType=>setTimeout(()=>this.loadData(),this.getTimeout()); componentWillUnmount=():void=>{ clearTimeout(this.startPolling);//此处
组件willunmount
上的React和TypeScript清除超时,但出现以下错误:
“()=>Timeout”类型的参数不能分配给“number”类型的参数。ts(2345)
这是我的密码:
startPolling=():ReturnType=>setTimeout(()=>this.loadData(),this.getTimeout());
componentWillUnmount=():void=>{
clearTimeout(this.startPolling);//此处抛出错误
}
我被难住了,不知道如何消除这个错误。我的代码有什么问题?TIA.错误是
clearTimeout()
需要一个数字,但您正在传递一个函数。表示参数为“要取消的超时的标识符”。返回可在此处使用的id。您需要保存返回值,以便在以后调用clearTimeout()
时使用。看起来您的startPolling
定义是针对函数的。您希望将调用此函数的结果传递给clearTimeout
,而不是传递函数本身。我猜您打算在componentDidMount
上调用startPolling