React-Native中的递归函数

React-Native中的递归函数,react-native,React Native,我想在我的react原生项目中添加一个递归函数,但是setTimeout不起作用。你能告诉我为什么吗?如何修复它 handleAppStateChange(appState) { if(appState === 'background') { let i = 0; function runAction() { i++; console.log('result'+i); setTimeo

我想在我的react原生项目中添加一个递归函数,但是
setTimeout
不起作用。你能告诉我为什么吗?如何修复它

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

setTimeout
的第一个参数是一个函数,因此请尝试

setTimeout(runAction,1000);

嗯。它正在工作,但只有当应用程序返回到“活动”状态时才起作用。为什么应用程序在后台时不工作?谢谢。这可能与移动操作系统优化或其他有关。这只是一个猜测,但也许操作系统会清除内存,然后应用程序会进入后台,因为在浏览器中,它的工作就是使用日期对象,而不是超时。只是猜测而已。不确定它是否对您有效,但在使用本地计划通知的日期时确实有效。