当前位置: 首页 > news >正文

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

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

  @overrideRouteSettings? redirect(String? route) {return RouteSettings(name: "/companyAuthIndexPage");}

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

所有正确的姿势是:

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

http://www.lryc.cn/news/522274.html

相关文章:

  • RabbitMQ(三)
  • 【Python】Python之locust压测教程+从0到1demo:基础轻量级压测实战(1)
  • 【JavaScript】基础内容,HTML如何引用JavaScript, JS 常用的数据类型
  • vue使用自动化导入api插件unplugin-auto-import,避免频繁手动导入
  • 在 C# 中的Lambda 表达式
  • 奉加微PHY6230兼容性:部分手机不兼容
  • 32单片机综合应用案例——基于GPS的车辆追踪器(三)(内附详细代码讲解!!!)
  • 45_Lua模块与包
  • 深度学习电影推荐-CNN算法
  • 【Git 】探索 Git 的魔法——git am 与补丁文件的故事
  • G1原理—5.G1垃圾回收过程之Mixed GC
  • 机器人传动力系统介绍
  • 1161 Merging Linked Lists (25)
  • 内联变量(inline variables):在多个文件中共享全局常量
  • Jmeter进行http接口并发测试
  • 力扣解题汇总_JAVA
  • ubuntu下安装编译cmake,grpc与protobuf
  • SQL Prompt 插件
  • 知识图谱抽取分析中,如何做好实体对齐?
  • 【Python通过UDP协议传输视频数据】(界面识别)
  • 【伪随机数】关于排序算法自测如何生成随机数而引发的……
  • 核密度估计(Kernel Density Estimation, KDE)是一种非参数统计方法
  • 【k8s面试题2025】2、练气初期
  • 栈溢出原理
  • Jmeter如何进行多服务器远程测试
  • 2.slf4j入口
  • 初学stm32 --- CAN
  • 软件测试—接口测试面试题及jmeter面试题
  • 图论的起点——七桥问题
  • 嵌入式开发通讯协议大全(在写中)