flutter Get GetMiddleware 中间件不起作用问题

当使用 get: ^5.0.0-release-candidate-9.2.1最新版本时,中间件GetMiddleware各种教程都是让我们在redirect中实现,比如:

复制代码
  @override
  RouteSettings? redirect(String? route) {
    return RouteSettings(name: "/companyAuthIndexPage");
  }

这个在之前版本是没有问题的,但是更新到最新版后,就无法生效了,查阅了官方后,得到了答案如下:

所有正确的姿势是:

复制代码
  @override
  FutureOr<RouteDecoder?> redirectDelegate(RouteDecoder route) {
    return RouteDecoder.fromRoute("/companyAuthIndexPage");
  }

当然作为合格的码农,怎么会止步于此,看了源代码后,发现不能生效的的代码如下:

复制代码
 bool needRecheck(BuildContext context) {
    if (settings == null && route != null) {
      settings = route;
    }
    final match = context.delegate.matchRoute(settings!.name!);

    // No Match found
    if (match.route == null) {
      isUnknown = true;
      return false;
    }

    // No middlewares found return match.
    if (match.route!.middlewares.isEmpty) {
      return false;
    }

    final runner = MiddlewareRunner(match.route!.middlewares);
    route = runner.runOnPageCalled(match.route);
    addPageParameter(route!);

    final newSettings = runner.runRedirect(settings!.name);
    if (newSettings == null) {
      return false;
    }
    settings = newSettings;
    return true;
  }

关键在于赋值后的settings没有正常下发,所以即使redirect被调用,但是功能不会生效

相关推荐
周胡杰5 小时前
鸿蒙接入flutter环境变量配置windows-命令行或者手动配置-到项目的创建-运行demo项目
javascript·windows·flutter·华为·harmonyos·鸿蒙·鸿蒙系统
程序猿阿伟8 小时前
《React Native与Flutter:社交应用中用户行为分析与埋点统计的深度剖析》
flutter·react native·react.js
肥肥呀呀呀18 小时前
在Flutter上如何实现按钮的拖拽效果
前端·javascript·flutter
WDeLiang1 天前
Flutter - UIKit开发相关指南 - 导航
flutter·ios·dart
程序猿阿伟1 天前
《Flutter社交应用暗黑奥秘:模式适配与色彩的艺术》
前端·flutter
融云2 天前
集成指南:如何采用融云 Flutter IMKit 实现双端丝滑社交体验
flutter
EndingCoder2 天前
跨平台移动开发框架React Native和Flutter性能对比
flutter·react native·react.js
Double Point2 天前
`RotationTransition` 是 Flutter 中的一个动画组件,用于实现旋转动画效果
flutter
亚洲小炫风2 天前
flutter 项目工程文件夹组织结构
flutter·flutter工程结构
Double Point2 天前
Flutter 中 vsync
flutter