Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 类型为'的参数;()=>;超时';不可分配给类型为';编号';_Reactjs_Typescript - Fatal编程技术网

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