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 是同步操作。

相关推荐
木子雨廷1 小时前
Flutter 使用 flutter_flavorizr 多渠道打包
前端·flutter
G_dou_2 小时前
# Flutter+OpenHarmony 实战:note_app 笔记应用
flutter·harmonyos
西西学代码2 小时前
Flutter---侧边栏会话列表
flutter
G_dou_2 小时前
Flutter+OpenHarmony实战:Calculator 计算器项目
flutter
小小小小小鹿2 小时前
# Vibe Coding 实战:Flutter 滑动列表上的花式动效
flutter·vibecoding
西西学代码2 小时前
Flutter---登录弹窗
flutter
G_dou_3 小时前
# Flutter+OpenHarmony 实战:ToDo待办清单
flutter·harmonyos
不爱吃糖的程序媛11 小时前
Flutter 三方库适配鸿蒙教程
flutter·华为·harmonyos
2501_9197490315 小时前
鸿蒙 Flutter 实战:video_compress 3.1.4 适配 3.27-ohos 全流程
flutter·华为·harmonyos
h64648564h17 小时前
Flutter 国际化(i18n)全指南:一键切换中/英/日多语言
前端·javascript·flutter