Flutter: исключение с использованием Navigator.of(context).pop();

#flutter #exception #view #navigator

#флаттер #исключение #Вид #навигатор

Вопрос:

Каждый раз, когда я использую Navigator.of(context).pop(); для возврата к предыдущему представлению, я всегда получаю

Необработанное исключение: ошибка NoSuchMethodError: метод ‘call’ был вызван с нулевым значением.

Сообщение.

Тем не менее, приложение успешно возвращается к предыдущему представлению, но я не знаю, почему я всегда получаю это сообщение, которое иногда вызывает сбой. Что это может быть?

 #0      _rootRunUnary (dart:async/zone.dart:1198:47)
#1      _CustomZone.runUnary (dart:async/zone.dart:1100:19)
#2      _FutureListener.handleValue (dart:async/future_impl.dart:143:18)
#3      Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:696:45)
#4      Future._propagateToListeners (dart:async/future_impl.dart:725:32)
#5      Future._completeWithValue (dart:async/future_impl.dart:529:5)
#6      Future._asyncCompleteWithValue.<anonymous closure> (dart:async/future_impl.dart:567:7)
#7      _rootRun (dart:async/zone.dart:1190:13)
#8      _CustomZone.run (dart:async/zone.dart:1093:19)
#9      _CustomZone.runGuarded (dart:async/zone.dart:997:7)
#10     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1037:23)
#11     _microtaskLoop (dart:async/schedule_microtask.dart:41:21)
#12     _startMicrotaskLoop<…>
 

Обычно я использую чернильницу, связанную со значком, для вызова метода. В примере:

 InkWell(onTap: () => Navigator.of(context).pop(), 

  child: Icon(Icons.chevron_left_rounded, color: Constants.COLOR_DEF, size: 30));
 

Комментарии:

1. Пожалуйста, предоставьте некоторый код, связанный с вашим методом вызова.

2. Ах да, я забыл.

Ответ №1:

Неважно, нашел проблему.

В принципе, при переходе с одной страницы на другую я всегда вызывал «Navigator.of (context).push (new MaterialPageRoute)», передавая также функцию обратного вызова (при необходимости). Когда эта функция обратного вызова не передается (null), выдается ошибка.

В любом случае спасибо всем, кто ответил!

Ответ №2:

эта ошибка обычно появляется Navigator.of(context).currentState , когда null

это означает, что у вас нет Route ниже текущего маршрута, поэтому вы не можете открыть маршрут. Проверьте это, есть ли у вас какой-либо маршрут ниже этого маршрута или нет??

Комментарии:

1. Да, потому что даже с этой ошибкой приложение возвращается на предыдущую страницу. Однако, когда я перехожу с одной страницы на другую, я всегда нажимаю новый MaterialPageRoute: Navigator.of(context).push(новый MaterialPageRoute(builder: (BuildContext context) => dest, настройки: настройки маршрута (имя: «/» routeName))).затем (функция обратного вызова);

2. хорошо, тогда мне понадобится еще немного кода, связанного с этой проблемой, если вы можете предоставить, это было бы здорово, иначе я бы стрелял вслепую 😅