Javascript 在setInterval中调用函数会在react native中出错

Javascript 在setInterval中调用函数会在react native中出错,javascript,react-native,Javascript,React Native,我正在开发一个React本机应用程序,尝试在setInterval中调用一个函数,每三秒重新渲染一次组件。但是当我将函数放入setInterval时,它返回错误this.refreshData()不是一个函数。这是我的代码: refreshData=async()=>{ 待命https://myapi', { 方法:“GET”, }) .then((response)=>response.json()) 。然后((响应)=>{ this.setState({tableData1:respons

我正在开发一个React本机应用程序,尝试在setInterval中调用一个函数,每三秒重新渲染一次组件。但是当我将函数放入setInterval时,它返回错误
this.refreshData()不是一个函数
。这是我的代码:

refreshData=async()=>{
待命https://myapi', {
方法:“GET”,
})
.then((response)=>response.json())
。然后((响应)=>{
this.setState({tableData1:response.First})
this.setState({tableData2:response.Special})
this.setState({tableData3:response.Consolidation})
})
}
组件willmount(){
const{navigation}=this.props;
this.focusListener=navigation.addListener(“didFocus”,()=>{
var today=新日期()
var time=today.getHours()
console.log(today.getMinutes())
var weekDay=today.getDay()
如果((时间>=22)&(时间使用函数

试试这个例子:

函数刷新数据(){
控制台日志(“调用”);
}
设置间隔(()=>{
这是refreshData();

},3000);
绑定setTimeout/setInterval函数或使用箭头函数,即

setTimeout(function() { //or setInterval(whatever you need to use)
        this.refreshData()
        }, 3000);
    }
 }).bind(this);


错误消失了,但是现在,如果函数应该在每3秒后被调用,则只调用一次@SaurabhAgrawal@TanmoySarker使用setTimeInterval?@TanmoySarker您需要的是setInterval而不是setTimeout。setInterval每3秒运行一次。这是一个输入错误。我正在使用setInterval,但在使用箭头函数之后,它只在不是每三秒钟之后@ShubhamVerma@TanmoySarker现在更新了我的答案,请检查它是否在3秒后继续呼叫。更正了该问题。@TanmoySarker我制作了代码沙盒供您参考。请检查:
setTimeout(() => { //or setInterval(whatever you need to use)
    this.refreshData();
}, 3000);