打开应用程序时,最大调用堆栈大小超出错误

时间:2018-08-21 05:36:22

标签: nativescript

在我的tabview标签中,我有一个“注销”按钮

var application = require("application");
application.run({ moduleName: "app-login" });

但是我得到了

  

RangeError:超出了最大调用堆栈大小

执行代码时。最终,我试图在用户需要全屏退出(即不在选项卡中)时返回登录屏幕。该应用程序的体系结构类似于tabview-template示例,每个标签都有框架。

任何帮助,不胜感激!

2 个答案:

答案 0 :(得分:0)

我可能对您的体系结构有误解,但是我认为在应用程序的生命周期中多次调用引导程序功能application.run({ moduleName: "app-login" });是有效的,因为该应用程序已经在运行(无论屏幕处于打开状态)。

答案 1 :(得分:0)

实际上,subprocess.run()是引导您的应用程序的方法。你不应该打两次。

嵌套框架功能未得到正式支持,也没有记录,但在NativeScript核心中是可能的。它尚未正式发布的原因是由于ActionBars等的某些意外副作用。在您的情况下,您只需获取正确的application.run()并在其上调用Frame。我在这里创建了一个简单的游乐场示例-https://play.nativescript.org/?template=play-tsc&id=tq6B2K

此示例中的关键是为您的xml中的每个navigate()分配一个id,以便您可以使用Frame方法在其中找到正确的getFrameById()层次结构。

此外,请注意,我在带有标签的页面上将Frame设置为true。如果未设置,则将看到两个嵌套的ActionBar。