Flutter:异常使用 Navigator.of(context).pop();
Flutter: Exception using Navigator.of(context).pop();
每次我使用 Navigator.of(context).pop();
到 return 到以前的视图时,我总是得到
Unhandled Exception: NoSuchMethodError: The method 'call' was called
on null.
留言。
但是应用成功回到了之前的界面,但是不知道为什么总是会出现这个有时导致崩溃的提示。可能是什么?
#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 来调用该方法。例如:
InkWell(onTap: () => Navigator.of(context).pop(),
child: Icon(Icons.chevron_left_rounded, color: Constants.COLOR_DEF, size: 30));
此错误通常在 Navigator.of(context).currentState
为 null
时出现
这意味着您在当前路线下方没有任何 Route
,因此您无法弹出该路线。
检查这个你有没有这条路线下面的路线??
没关系,找到问题了。
基本上,当从一个页面转到另一个页面时,我总是调用“Navigator.of(context).push(new MaterialPageRoute)”并传递一个回调函数(如果需要)。如果未传递该回调函数(null),则会抛出错误。
谢谢任何回复的人!
每次我使用 Navigator.of(context).pop();
到 return 到以前的视图时,我总是得到
Unhandled Exception: NoSuchMethodError: The method 'call' was called on null.
留言。
但是应用成功回到了之前的界面,但是不知道为什么总是会出现这个有时导致崩溃的提示。可能是什么?
#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 来调用该方法。例如:
InkWell(onTap: () => Navigator.of(context).pop(),
child: Icon(Icons.chevron_left_rounded, color: Constants.COLOR_DEF, size: 30));
此错误通常在 Navigator.of(context).currentState
为 null
这意味着您在当前路线下方没有任何 Route
,因此您无法弹出该路线。
检查这个你有没有这条路线下面的路线??
没关系,找到问题了。
基本上,当从一个页面转到另一个页面时,我总是调用“Navigator.of(context).push(new MaterialPageRoute)”并传递一个回调函数(如果需要)。如果未传递该回调函数(null),则会抛出错误。
谢谢任何回复的人!