C# Xamarin Forms 代码在加载时不执行但在按钮单击时执行
C# Xamarin Forms Code not executing when loading but executing on button click
我在 Page
打开和 Button
单击时使用了完全相同的代码 运行。
这是加载时的代码:
[Obsolete]
public LoginPage()
{
Task.Run(async () =>
{
User results = await LoginService.Login(username.Text.Trim(), password.Text.Trim());
if (results != null)
{
GlobalVars.loginProfilJsonObject = results;
Application.Current.MainPage = new MainPage();
Console.WriteLine("Not executing");
}
else
{
await DisplayAlert("Error", "Wrong email address or password", "OK");
}
});
}
这是点击按钮:
[Obsolete]
async void OnClicked(object sender, EventArgs e)
{
User results = await LoginService.Login(username.Text.Trim(), password.Text.Trim());
if (results != null)
{
GlobalVars.loginProfilJsonObject = results;
Application.Current.MainPage = new MainPage();
}
else
{
await DisplayAlert("Error", "Wrong email address or password", "OK");
}
}
我尝试了 try...catch
试图找出任何错误,但没有任何结果。
我想这与这条线有关,但我似乎无法理解这是什么; Application.Current.MainPage = new MainPage();
。
该行之后不执行任何操作。
这是在我更新到最新的 Xamarin.Forms
版本后发生的。
编辑:检查后通过MainPage
调用页面执行登录
if (GlobalVars.loginProfilJsonObject == null)
{
Task.Run(async () =>
{
await Navigation.PushAsync(new LoginPage());
});
}
尝试使用这样的东西:
protected override async void OnAppearing()
{
base.OnAppearing();
User results = await LoginService.Login(username.Text.Trim(), password.Text.Trim());
if (results != null)
{
GlobalVars.loginProfilJsonObject = results;
Application.Current.MainPage = new MainPage();
Console.WriteLine("Not executing");
}
else
{
await DisplayAlert("Error", "Wrong email address or password", "OK");
}
}
页面显示后执行的OnAppearing方法。
我在 Page
打开和 Button
单击时使用了完全相同的代码 运行。
这是加载时的代码:
[Obsolete]
public LoginPage()
{
Task.Run(async () =>
{
User results = await LoginService.Login(username.Text.Trim(), password.Text.Trim());
if (results != null)
{
GlobalVars.loginProfilJsonObject = results;
Application.Current.MainPage = new MainPage();
Console.WriteLine("Not executing");
}
else
{
await DisplayAlert("Error", "Wrong email address or password", "OK");
}
});
}
这是点击按钮:
[Obsolete]
async void OnClicked(object sender, EventArgs e)
{
User results = await LoginService.Login(username.Text.Trim(), password.Text.Trim());
if (results != null)
{
GlobalVars.loginProfilJsonObject = results;
Application.Current.MainPage = new MainPage();
}
else
{
await DisplayAlert("Error", "Wrong email address or password", "OK");
}
}
我尝试了 try...catch
试图找出任何错误,但没有任何结果。
我想这与这条线有关,但我似乎无法理解这是什么; Application.Current.MainPage = new MainPage();
。
该行之后不执行任何操作。
这是在我更新到最新的 Xamarin.Forms
版本后发生的。
编辑:检查后通过MainPage
调用页面执行登录
if (GlobalVars.loginProfilJsonObject == null)
{
Task.Run(async () =>
{
await Navigation.PushAsync(new LoginPage());
});
}
尝试使用这样的东西:
protected override async void OnAppearing()
{
base.OnAppearing();
User results = await LoginService.Login(username.Text.Trim(), password.Text.Trim());
if (results != null)
{
GlobalVars.loginProfilJsonObject = results;
Application.Current.MainPage = new MainPage();
Console.WriteLine("Not executing");
}
else
{
await DisplayAlert("Error", "Wrong email address or password", "OK");
}
}
页面显示后执行的OnAppearing方法。