当我将页面的新实例推到导航堆栈上时,onappearing((启动了两次,因此创建了两个velivernotepicker页面。呼叫堆栈中没有任何线索。为什么会发生这种情况?
protected override async void OnAppearing()
{
base.OnAppearing();
MessagingCenter.Subscribe<ScannerMessages, Barcode>(this, "ScannerData", (sender, arg) =>
{
Device.BeginInvokeOnMainThread(() => { ItemScanned(arg.Value); });
});
try
{
if (picklist == null)
{
// Attempt to retrieve an existing picklist:
picklist = (List<Pick>)Application.Current.Properties[PicklistProperty];
branchName.Text = (string)Application.Current.Properties[BranchNameProperty];
NextPick();
}
}
catch (KeyNotFoundException)
{
// Create a new picklist:
await Navigation.PushModalAsync(new DeliveryNotePicker());
}
}
我也遇到了这个错误,认为这是在启动功能中推动新模式时引起的
解决方法是检查当前页面与Saamer的最后一个评论中的相同,或使用私人计数器检查