page.onappeation()发射两次



当我将页面的新实例推到导航堆栈上时,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的最后一个评论中的相同,或使用私人计数器检查

最新更新