flutter pushAndRemoveUntil 的一次小疑惑

刚开始我是这么写的,本意是想等这个操作完成之后 再继续后续的操作。但是发现后续的操作一直不执行,也没有报错。

js 复制代码
await Navigator.of(globalKey.currentState!.context).pushAndRemoveUntil

这是pushAndRemoveUntil的源码,可以看到返回的是newRoute.popped,看字面意思就是等待的是我们push的新route的pop操作。所以也能理解上面的await一直没有返回,一直没有往后继续执行的原因。

js 复制代码
@optionalTypeArgs
Future<T?> pushAndRemoveUntil<T extends Object?>(Route<T> newRoute, RoutePredicate predicate) {
  assert(newRoute._navigator == null);
  assert(newRoute.overlayEntries.isEmpty);
  _pushEntryAndRemoveUntil(
    _RouteEntry(newRoute, pageBased: false, initialState: _RouteLifecycle.push),
    predicate,
  );
  return newRoute.popped;
}

所以这里没必要await push and remove 是同步操作。

相关推荐
chicken_h43 分钟前
【无标题】
flutter·打包
事圆则缓3 小时前
Flutter 底层渲染引擎怎么变了:从 Skia 到 Impeller,以及迁移时的坑
flutter
码林鼠18 小时前
flutter状态管理入门教程-Riverpod
开发语言·javascript·flutter
码林鼠21 小时前
flutter网络http请求入门教程-dio
网络协议·flutter·http
码林鼠1 天前
flutter BLoC 单向数据流完整教程
flutter
恋猫de小郭1 天前
Flutter 官方表示:AI 时代代码越来越容易写,为什么还要一套代码库?
android·前端·flutter
喵个咪2 天前
GoWind ShortPlay 拆解:Flutter 沉浸式 Feed 的播放器工程——生命周期、手势状态机与游客降级
前端·flutter·架构
恋猫de小郭3 天前
Flutter 的文字为什么比 SwiftUI 更细?问题主要在 Skia 的 256 项查找表里
android·前端·flutter
好的佩奇4 天前
Dart 之类型系统
flutter·dart