gpt4 book ai didi

flutter - pushReplacement 或 pushAndRemoveUntil(Route route) => false 不起作用

转载 作者:行者123 更新时间:2023-12-04 11:44:03 34 4
gpt4 key购买 nike

使用命令式 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;
});

最佳答案

这是一个老问题,今天我使用 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);

关于flutter - pushReplacement 或 pushAndRemoveUntil(Route<dynamic> route) => false 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67000306/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com