欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > flutter Get GetMiddleware 中间件不起作用问题

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

2025/2/5 16:59:58 来源:https://blog.csdn.net/qq_25193681/article/details/145177998  浏览:    关键词: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被调用,但是功能不会生效

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com