只为成功找方法,不为失败找理由。

博客园 首页 新随笔 联系 订阅 管理

监听到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("/"))
 

 

posted on 2020-04-01 11:51  诗意的活着  阅读(4739)  评论(0编辑  收藏  举报