Variables 如何在容器中调用电子邮件?在颤振机器人pp
我需要在容器中显示JWT标记值。我尝试了很多方法返回值,声明一个全局变量,但都不起作用。当我声明一个全局变量时,它发送空值。我该怎么做? 我使用颤振开发了我的应用程序 我的代码Variables 如何在容器中调用电子邮件?在颤振机器人pp,variables,flutter,dart,jwt,Variables,Flutter,Dart,Jwt,我需要在容器中显示JWT标记值。我尝试了很多方法返回值,声明一个全局变量,但都不起作用。当我声明一个全局变量时,它发送空值。我该怎么做? 我使用颤振开发了我的应用程序 我的代码 class _ProfileScreenState extends State<ProfileScreen> { SharedPreferences sharedPreferences; String _email; final _scaffoldKey = new GlobalKey&
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;
}
class\u ProfileScreenState扩展状态{
SharedReferences SharedReferences;
字符串\u电子邮件;
最终_scaffoldKey=新的GlobalKey();
@凌驾
void initState(){
super.initState();
checkLoginStatus();
}
checkLoginStatus()异步{
SharedReferences=等待SharedReferences.getInstance();
if(SharedReferences.getString(“令牌”)==null){
Navigator.of(context).pushandremoveintil(MaterialPageRoute(builder:(BuildContext context)=>Login(),(Route-Route)=>false);
}
var token=SharedReferences.getString(“token”);
var payload=Jwt.parseJwt(令牌);
打印(有效载荷);
打印(有效载荷[“电子邮件]);
_电子邮件=有效载荷[“电子邮件”];
打印(“你好世界”);
打印(电子邮件);
返回电子邮件;
}
我想将该电子邮件值发送到容器
我的集装箱部在这里
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,
),
小部件构建(构建上下文){
返回脚手架(
浮动操作按钮:浮动操作按钮(
背景颜色:Colors.redAccent[200],
子:图标(图标。箭头返回),
已按下:(){
sharedReferences.clear();
SharedReferences.commit();
Navigator.of(context).pushandremoveintil(MaterialPageRoute(builder:(BuildContext context)=>Login(),(Route-Route)=>false);
},
),
背景颜色:Color.fromRGBO(255、255、255、.9),
正文:安全区(
子:ListView(
儿童:[
堆叠(
儿童:[
容器(
宽度:double.infinity,
身高:330,
颜色:Colors.blueAccent[200],
),
定位(
前10名,
右:30,,
子:图标(
Icons.settings,//设置图标
颜色:颜色,白色,
),
),
纵队(
儿童:[
容器(
身高:90,
页边距:仅限边缘集(顶部:60),
孩子:圆环星(
半径:50,
背景颜色:Colors.white,
子:图标(图标、标记面),
)
),
填充物(
填充:边缘设置。全部(4),
),
正文(
_email,//这里我称之为变量
样式:TextStyle(
颜色:颜色,白色,
fontWeight:fontWeight.w500,
fontSize:20,fontFamily:‘蒙特塞拉特’,
textAlign:textAlign.center,
),
添加空检查
Text(
_email == null || _email.isEmpty ?'Loading (or) nil' : _email,
style: TextStyle(
color: Colors.white,
fontWeight: FontWeight.w500,
fontSize: 20,fontFamily: 'Montserrat'),
textAlign: TextAlign.center),
在该代码中,如果为null,则检查null显示加载(或)nil bud不显示该值。我想显示值bro..在初始化电子邮件时调用setState