[英]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 方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.