【问题标题】:pushReplacement or pushAndRemoveUntil(Route<dynamic> route) => false not WorkingpushReplacement 或 pushAndRemoveUntil(Route<dynamic> route) => false 不工作
【发布时间】:2021-07-04 02:32:48
【问题描述】:

使用命令式api无法完成基于页面的路由,而是提供一个没有相应页面的新列表给Navigator.pages。 'package:flutter/src/widgets/navigator.dart': 断言失败:第 3075 行 pos 7: '!hasPage || isWaitingForExitingDecision'

只有 Navigator.push 有效。在 Flutter 2 之前它可以工作。

Navigator.pushAndRemoveUntil(
                    context,
                    PageRouteBuilder(
                      transitionDuration: const Duration(milliseconds: 3300),
                      transitionsBuilder: (BuildContext context,
                          Animation<double> animation,
                          Animation<double> secondaryAnimation,
                          Widget child) {
                        return _CustomPageTransition(
                            routeAnimation: animation,
                            fullscreenDialog: false,
                            child: child);
                      },
                      pageBuilder: (_, __, ___) => LoginScreen(),
                    ),
                    (route) {
                      print(route.settings.name);
                      return false;
                    });

【问题讨论】:

    标签: flutter flutter-animation


    【解决方案1】:

    这是一个老问题,现在我通过使用 auto_route 包解决了它。但我认为如果你使用 Navigator.replace 它会起作用。

    AutoRouter.of(context).replaceNamed(LoginScreenRoute().path);
    

    或者

    AutoRouter.of(context).replace(LoginScreenRoute());
    

    在 MaterialAutoRouter 中:

    @MaterialAutoRouter(routes: <AutoRoute>[
    AutoRoute(page: RouteAuthentication, initial: true),
    CustomRoute(
        page: LoginScreen,
        fullscreenDialog: true,
        transitionsBuilder: TransitionsBuilders.slideLeftWithFade,durationInMilliseconds: 3300
    ),])
    

    就我而言,我想使用 Hero 小部件制作动画。但是下面的代码不起作用。

    AutoRouter.of(context).pushAndPopUntil(LoginScreenRoute(),
                      predicate: (_) => false);
    

    【讨论】:

      猜你喜欢
      • 2012-12-12
      • 1970-01-01
      • 1970-01-01
      • 2020-07-04
      • 2021-08-19
      • 1970-01-01
      • 2015-09-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多