Как я называю _email в контейнере? во флаттере Android пп - PullRequest
0 голосов
/ 06 марта 2020

Мне нужно отобразить значения токенов J WT в контейнере . Я пытаюсь многими способами вернуть значение, объявить глобальную переменную, но не работает. когда я объявляю глобальную переменную, она отправляет значение NULL. Как я могу это сделать ? Я разработал свое приложение, используя Флаттер

мой код

 class _ProfileScreenState extends State<ProfileScreen> {
      SharedPreferences sharedPreferences;

String _email;

  final _scaffoldKey = new GlobalKey<ScaffoldState>();
  @override
  void initState() {
    super.initState();
    checkLoginStatus();



  }
   checkLoginStatus() async {
    sharedPreferences = await SharedPreferences.getInstance();
    if(sharedPreferences.getString("token") == null) {
      Navigator.of(context).pushAndRemoveUntil(MaterialPageRoute(builder: (BuildContext context) => Login()), (Route<dynamic> route) => false);

  }
var token = sharedPreferences.getString("token");
var payload = Jwt.parseJwt(token);
print(payload);
print(payload["email"]);
 _email = payload["email"];
  print("Hello world");
  print(_email);
return _email;

   }

Я хочу отправить это значение электронной почты в контейнер.

Мой раздел контейнера находится здесь

Widget build(BuildContext context) {
return Scaffold(
    floatingActionButton: FloatingActionButton(
      backgroundColor: Colors.redAccent[200],
      child: Icon(Icons.arrow_back),
      onPressed: () {
          sharedPreferences.clear();
          sharedPreferences.commit();
          Navigator.of(context).pushAndRemoveUntil(MaterialPageRoute(builder: (BuildContext context) => Login()), (Route<dynamic> route) => false);
        },
    ),
    backgroundColor: Color.fromRGBO(255, 255, 255, .9),
    body: SafeArea(
      child: ListView(
        children: <Widget>[
          Stack(
            children: <Widget>[
              Container(
                width: double.infinity,
                height: 330,
                color: Colors.blueAccent[200],
              ),
              Positioned(
                top: 10,
                right: 30,
                child: Icon(
                  Icons.settings, //setting Icon
                  color: Colors.white,
                ),
              ),
              Column(
                children: <Widget>[
                  Container(
                    height: 90,
                    margin: EdgeInsets.only(top: 60),
                    child: CircleAvatar(
                      radius: 50,
                      backgroundColor: Colors.white,
                      child: Icon(Icons.tag_faces),
                    )
                  ),
                  Padding(
                    padding: EdgeInsets.all(4),
                  ),
                  Text(
                     _email,  // here I call that variable
                    style: TextStyle(
                        color: Colors.white,
                        fontWeight: FontWeight.w500,
                        fontSize: 20,fontFamily: 'Montserrat'),
                    textAlign: TextAlign.center,
                  ),

1 Ответ

0 голосов
/ 06 марта 2020

добавить нулевую проверку

Text(
   _email == null || _email.isEmpty ?'Loading (or) nil' : _email,
   style: TextStyle(
       color: Colors.white,
       fontWeight: FontWeight.w500,
       fontSize: 20,fontFamily: 'Montserrat'),
       textAlign: TextAlign.center),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...