Xamarin Forms NavigationPage - это не так, но если в утверждении говорится, что оно не равно нулю - PullRequest
0 голосов
/ 28 ноября 2018

Короче говоря, я пытаюсь выяснить, является ли NavigationPage нулевым или нет, но я получаю странную проблему.

if (!ReferenceEquals(navigationPage, null))
{
     await navigationPage.PushAsync(page);
}

(Это была навигационная страница! = Ноль) Я изменил еечтобы увидеть, может ли это помочь, но не такая удача.По сути, каждый раз, когда я загружаю новую страницу через HomePage, navigationPage в отладчике равен null, однако, когда я запускаю на нем if и говорю, что он не равен null, игнорируя отладчик, говоря, что он равен null, оператор if возвращает falseэто не нуль.После того, как я загружаю страницу 2 раза (не имеет значения, страницу), в третий раз происходит сбой приложения, говоря «Ссылка на нуль объекта, когда он пытается выполнить navigationPage.PushAsync. Я проверил это, и я считаю, что это потому, что navigationPage имеет значение null.

Понятия не имею, как он говорит, что что-то не является нулевым, когда отладчик говорит, что это так. Есть идеи?

1 Ответ

0 голосов
/ 29 ноября 2018

Как правило, можно использовать

await Navigation.PushAsync(page);

, а Xamarin.Forms найдет экземпляр NavigationPage, который используется текущей страницей, поэтому не уверен, почему вы используете экземпляр NavigationPage(navigationPage) вместо использования рекомендованного метода, описанного в этом документе .

Но я не могу сказать, если вы не поделитесь большим количеством кода, который вы используете, в идеале MCVE , почему ваш экземпляр navigationPage обнуляется.

...