2017-04-07 84 views
0

我想在我的反应原生项目中添加一个递归函数,但setTimeout不起作用。你能告诉我为什么吗?以及如何解决它?React Native中的递归函数

handleAppStateChange(appState) { 
    if(appState === 'background') { 
     let i = 0; 
     function runAction() { 
      i++; 
      console.log('result'+i); 
      setTimeout("runAction()",1000); 
     } 
     runAction(); 
    } 
} 

回答

0

setTimeout第一个参数是一个函数,所以要尽量

setTimeout(runAction,1000); 
+0

嗯。它的工作,但只有当应用程序回到“活跃”。为什么在应用程序处于后台时它不起作用?谢谢。 – Klick

+0

它可能与移动操作系统优化或某事有关。这只是一个猜测,但也许操作系统清除内存,然后应用程序进入后台,因为在浏览器中它的工作很清楚 –

+0

尝试使用Date对象而不是超时。只是一个猜测。不确定它是否适用于您,但在为本地计划通知使用日期时确实有效。 –