Javascript setTimeout不执行

Javascript setTimeout不执行,javascript,react-native,Javascript,React Native,我正在使用react native制作应用程序。我需要等待10秒钟,然后在屏幕上重定向。这是我的密码: onPressEnter() { setTimeout(onPressEnter(), 5000); //////Redirecting changePage("Error"); } 但是,我发现的超时命令显示否,或者它们给了我一个错误: 找不到按Enter键 我应该提到的是,这个方法通过我屏幕上的一个按钮调用 你能帮助我如何正确执行超时吗

我正在使用react native制作应用程序。我需要等待10秒钟,然后在屏幕上重定向。这是我的密码:

onPressEnter() {

      setTimeout(onPressEnter(), 5000);

      //////Redirecting
        changePage("Error");
    }
但是,我发现的超时命令显示否,或者它们给了我一个错误:

找不到按Enter键

我应该提到的是,这个方法通过我屏幕上的一个按钮调用


你能帮助我如何正确执行超时吗

尝试将其添加到匿名函数中

onPressEnter() {
  setTimeout(function() {
    onPressEnter()
  }, 5000); 
  //////Redirecting
  changePage("Error");
}

下面的例子可能会有所帮助。执行onPressEnter功能时,首先检查前一次执行时是否已运行计时器。如果是这样,什么也不做。否则,将超时设置为10秒,然后运行调用changePage函数的函数

类MyComponent扩展了React.Component{ 按回车==>{ 如果此计时器>0,则返回; this.timer=setTimeout=>{ 这个.changePageError; this.timer=null;//如果要卸载组件,则不需要 }, 10000; } changePage=page=>{ console.log重定向到+页面; } 渲染{ 返回重定向 } } ReactDOM.render、document.getElementByIdapp;
如果将函数添加到函数声明中并从setTimeout函数中删除括号,则代码应该可以工作:

按回车键的功能{ 设置超时按Enter键,5000; 控制台。记录“按下回车键”; }
按回车键;//启动超时循环,不要调用计时器中的函数。只要参考一下就行了。使用setTimeoutonPressEnter,5000;代码没有多大意义;setTimeout调用位于计时器应该触发的同一个函数内。您需要将计时器设置在函数外部并移除支架。另外,5000毫秒不是10秒。@ScottMarcus:谢谢你的回答,它给了我同样的错误:@JJJ:谢谢你的回答,你能解释更多吗?@ScottMarcus是的,但这似乎不适用于这里:在循环中重定向没有意义。另外,您必须调用函数一次才能启动循环–这里缺少该代码。这就是我一直在寻找的!它起作用了!谢谢。我不知道为什么我在这个问题上给了-2分,但是,得到这个答案是值得的。非常感谢@女王,没问题。我猜它被否决了,因为你的文章中没有包含你的代码/问题的某些部分,因此更难理解你的问题。不管怎样,很高兴我能帮上忙。祝你好运