Dart/Flutter中的全局变量



我在flutter中编写了一个函数,通过rest api登录用户。我想使用来自post的响应,但我不知道如何将我的变量导出到另一个文件中。

我想用userID,但我不知道怎么用,有人能帮我吗?

class LoginScreenState extends State<LoginScreen>{
makeLoginRequest(String email, password) async {
SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
Map data = {
'email':email,
'password':password
};
var jsonResponse;
var url = 'http://10.0.2.2:80/user/login';
var response = await http.post(url, body:data);
if(response.statusCode == 200){
jsonResponse = json.decode(response.body);
int userID = jsonResponse['id'];//HERE
if(jsonResponse != null){
setState(() {
_isLoading = false;
});
sharedPreferences.setString("token", jsonResponse['token']);
Navigator.of(context).pushAndRemoveUntil(MaterialPageRoute(builder: (BuildContext context) => UserPage()), (Route<dynamic> route) => false);
}
}

在UserPage中使用一个变量来获取ID。

示例:

class UserPage extends StatefulWidget {
final int userId;
UserPage({@required this.userId});
@override
_UserPageState createState() => _UserPageState();
}
class _UserPageState extends State<UserPage> {
@override
Widget build(BuildContext context) {
return Container();
}
}

登录后导航到UserPage时,传递userID:

Navigator.of(context).pushAndRemoveUntil(MaterialPageRoute(builder: (BuildContext context) => UserPage(userId: userID)), (Route<dynamic> route) => false);

当您想在UserPage中获得userId的值时,可以通过以下方式使用它:widget.userId

最新更新