dart - Flutter popUntil 抛出Bad state : Future alrea

我有屏幕 A->B->C->D

在 B、C、D 屏幕中,有一个按钮可以将您带到屏幕 A保持其状态(因此 pushNamedAndRemoveUntil 在这里不合适)。

我想使用popUntil,我就是这样做的,基于文档:

Navigator.popUntil(context, ModalRoute.withName(ScreenName.mainScreen));

我收到一个错误: 坏状态: future 已经完成

这是我的主要内容:

void main() {
  SystemChrome.setPreferredOrientations([
    DeviceOrientation.portraitUp,
    DeviceOrientation.portraitDown,
  ]);

  final pages = {
    ScreenName.mainScreen: (settings) => MaterialPageRoute(
        builder: (context) => MainScreen(), settings: settings),
  };

  var configureApp = AppConfig(
    appName: 'TaskerMate',
    flavorName: FLAVOR_NAME.PROD,
    child: AppModelProvider(
      model: AppModel(),
      child: MaterialApp(
        theme: TMTheme().get(),
        home: SplashScreen(),
        onGenerateRoute: (settings) {
          pages[settings.name](settings);
        },
        routes: {ScreenName.mainScreen: (context) => MainScreen()},
      ),
    ),
  );

  Logger.root.level = Level.ALL;
  Logger.root.onRecord.listen((LogRecord rec) {
    print('${rec.level.name}: ${rec.time}: ${rec.message}');
  });

  runApp(configureApp);
}

ScreenName.mainScreen -> static final String mainScreen = '/main';

最佳答案

我花了很长时间才找到答案,但如果有人发现自己遇到了这个问题,Rémi Rousselet's answer to another question是什么为我解决了它:

 Navigator.pushReplacement(
  context,
  MaterialPageRoute(settings: RouteSettings(name: "Foo")),
);

使用名称将设置添加到 MaterialPageRoute,然后像这样调用 popUntil:

Navigator.popUntil(context, ModalRoute.withName("Foo"))

关于dart - Flutter popUntil 抛出Bad state : Future already completed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52661156/

相关文章:

android - 在 dart/flutter 项目中包含 C 文件

asynchronous - 在特定时间等待 future

Flutter - 屏幕的多个文件?

listview - flutter listView.Builder 隐藏最后一个列表项的分隔符

firebase - Flutter 中的 cloud_firestore 和 firebase_a

android - 路由后,TextField 单击重建/重新加载小部件

flutter - 如何使 Flutter RaisedButton 处于选中状态

android - Flutter 不选择基于 fontWeight 的自定义字体

dart - Flutter 能否免去使用 mac 来创建 IOS 应用程序?

flutter - 如何在 flutter 中改变英雄动画的速度