flutter 统一处理token 失效返回登录页面


监听到code ==403 使用eventBus  统一触发。

遇到的问题是

Navigator.of(context).pushAndRemoveUntil(
                new MaterialPageRoute(builder: (context) => new loginPage()
                ), (route) => route == null);
这个方法只在当前页面生效,我是放着首页那块 了首页eventbus 触发,但是页面不跳转

解决办法是换一种不需要context 也能够进行页面跳转的方法。
利用GlobalKey
1.创建全局方法。
class Router { static GlobalKey<NavigatorState> navigatorKey = GlobalKey(); }
 
2.在main.dart中的MaterialApp下设置navigatorKey
MaterialApp(
 title: 'app_name', theme: kLightTheme, navigatorKey: Router.navigatorKey, //设置在这里
      routes: {
        '/LoginPage': (ctx) => loginPage(),'/MainPage': (ctx) => showPlatfrom(),
      },
3.跳转到登录页面
Router.navigatorKey.currentState.pushNamedAndRemoveUntil("/LoginPage", ModalRoute.withName("/"))
 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM