#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. хорошо, тогда мне понадобится еще немного кода, связанного с этой проблемой, если вы можете предоставить, это было бы здорово, иначе я бы стрелял вслепую 😅