我有一个登录页面,可以检查用户是否已登录,然后导航到其他页面或停留在登录页面上。我不想将此代码放在onEvent($e) { //do something ... }
上,因为登录页面不会在应用程序的第一次加载时打开。现在,当我导航到登录页面时,我的应用程序崩溃并抛出错误:
GC_BRIDGE:已完成,运行了0.09ms 11-16 12:31:55.111 D / Mono (15701):GC_MINOR:(Nursery full)时间35.82ms,stw 36.83ms提升 1009K主要大小:531904K使用中:471305K丢失大小:2048K使用中:49K
这是我的代码
App.cs
答案 0 :(得分:0)
您的构造函数中有一个递归导航。
属性Setings.AccessToken
为空时,您导航到新的Logins
页面。因为您创建了一个新的Logins
页面,所以您还要再次检查AccessToken
。而且它仍然是空的,因此您一次又一次地创建新的Logins
页...
引用您的问题
[...]或停留在登录页面上。
要停留在页面上,只需不要在构造函数中导航至该页面即可。将else
部分保留为空白将显示Logins
页面。
提示:由于两个原因,不建议在构造函数中导航:
PushAsync
是异步的。因此,您可以等待它,直到导航完成(在构造函数中是不可能的)Logins
页面之前)。或者:您必须加载页面,然后再检查AccessToken
。为什么?您创建了一个页面来显示它,而不检查是否需要显示另一个页面...