Xamarin表单:加载时登录页面上的错误

时间:2018-11-16 07:41:34

标签: xamarin.forms

我有一个登录页面,可以检查用户是否已登录,然后导航到其他页面或停留在登录页面上。我不想将此代码放在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

1 个答案:

答案 0 :(得分:0)

您的构造函数中有一个递归导航。

属性Setings.AccessToken为空时,您导航到新的Logins页面。因为您创建了一个新的Logins页面,所以您还要再次检查AccessToken。而且它仍然是空的,因此您一次又一次地创建新的Logins页...

引用您的问题

  

[...]或停留在登录页面上。

要停留在页面上,只需不要在构造函数中导航至该页面即可。将else部分保留为空白将显示Logins页面。

提示:由于两个原因,不建议在构造函数中导航:

  1. 导航方法PushAsync是异步的。因此,您可以等待它,直到导航完成(在构造函数中是不可能的)
  2. 您应该检查页面本身之外的导航(实际上:首先创建Logins页面之前)。或者:您必须加载页面,然后再检查AccessToken。为什么?您创建了一个页面来显示它,而不检查是否需要显示另一个页面...