2017-04-07 59 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對象而不是超時。只是一個猜測。不確定它是否適用於您,但在爲本地計劃通知使用日期時確實有效。 –