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