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被调用,但是功能不会生效

相关推荐
G_dou_11 分钟前
Flutter三方库适配OpenHarmony【compass】罗盘 UI 项目完整实战
flutter·ui
G_dou_2 小时前
Flutter +OpenHarmony 实战:clock 时钟应用
flutter·harmonyos
G_dou_2 小时前
Flutter+OpenHarmony 实战:weather 天气查询应用
flutter·harmonyos
韩曙亮3 小时前
【错误记录】flutter pub get 执行报错 ( 打开 Windows 开发者模式 )
windows·flutter
G_dou_5 小时前
Flutter+OpenHarmony实战:flashlight】手电筒项目
flutter·harmonyos
坚果的博客5 小时前
Flutter OHOS SDK 版本目录校验 Bug 修复实战
flutter·bug
坚果的博客6 小时前
Flutter 开发鸿蒙 6 应用,祝贺六一儿童节 [特殊字符]
flutter·华为·harmonyos
jingling5556 小时前
Flutter | 从基本跳转到路由守卫
服务器·前端·网络·flutter·前端框架
用户9655973619021 小时前
Flutter 遇上 FlutterSkills:让开发效率翻倍的实用技巧
flutter
2501_919749031 天前
鸿蒙 Flutter 实战:image_crop 0.4.1 适配 3.27-ohos 全流程
flutter·华为·harmonyos