H5W3
当前位置:H5W3 > Flutter > 正文

【flutter】flutter:进入首页的时候判断是否登录,没登录则跳到登录页,这个怎么实现

进入首页的时候判断是否登录,没登录则跳到登录页,这个怎么实现

回答

链接描述

这是我写的一个demo,实现了你要的功能

class _StartAppState extends State<StartApp>{

    var loginState;

    void initState(){
        super.initState();
        _validateLogin();
    }
    
    @override
    Widget build(BuildContext context){
        ScreenUtil.instance = ScreenUtil(width: 750,height: 1334)..init(context);

        final router = Router();
        Routes.configureRoutes(router);
        Application.router = router;

        print(loginState);
        if(loginState == 0){
            return LoginPage();
        }else{
            return HomePage();
        }
    }

    Future _validateLogin() async{
            Future<dynamic> future = Future(()async{
                SharedPreferences prefs =await SharedPreferences.getInstance();
                return prefs.getString("loginToken");
            });
            future.then((val){
                if(val == null){
                    setState(() {
                        loginState = 0;
                    });
                }else{
                    setState(() {
                        loginState = 1;
                    });
                }
            }).catchError((_){
                print("catchError");
            });
        
    }

}

有使用状态管理吗?使用了的话进入首页的时候判断状态信息是否存在,不存在就导航路由到登陆页面

可以使用shared_preferences插件来管理状态数据(比如保存一个isLogin和username字段),在进入首页之前先取出shared_preferences里的这两个数据判断一下就可以了

本文地址:H5W3 » 【flutter】flutter:进入首页的时候判断是否登录,没登录则跳到登录页,这个怎么实现

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址