我写了一个函数,通过flutter中的rest api登录用户。我想使用帖子的响应,但是我不知道如何将变量导出到另一个文件中。
我想使用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时,传递用户ID:
Navigator.of(context).pushAndRemoveUntil(MaterialPageRoute(builder: (BuildContext context) => UserPage(userId: userID)), (Route<dynamic> route) => false);
当您想要在UserPage中获取userId的值时,可以通过以下方式使用它:
widget.userId
关于flutter - Dart/Flutter中的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60822378/