Flutter 处理 future 响应
Flutter 处理 future 响应
登录后,我想存储令牌值并使用go路由器导航到主页。我不知道如何处理显示或检索姓名和角色等JSON数据...我是一个编程新手。请帮助我,谢谢!我尝试了futurebuilder示例,但它没有起作用。请给我一个简单的解决方案。
Future
final response = await http.post(
Uri.parse('https://random.url/api/login'),
headers:
'Content-Type': 'application/json; charset=UTF-8',
},
body: jsonEncode(
if (response.statusCode == 200) {
return Loginuser.fromJson(json.decode(response.body));
} else {
throw Exception('Failed to update album.');
}
}
class Userinfo {
double branchcode;
double role;
double name;
Userinfo({required this.branchcode, required this.role, required this.name});
factory Userinfo.fromJson(Map
return Userinfo(
branchcode: json['branchcode'], role: json['role'], name: json['name']);
}
}
class Loginuser {
final String message;
final String messagecode;
final String token;
final Userinfo userinfo;
const Loginuser({
required this.message,
required this.messagecode,
required this.token,
required this.userinfo,
});
factory Loginuser.fromJson(Map
return Loginuser(
message: json['message'],
messagecode: json['messagecode'],
token: json['token'],
userinfo: json['userinfo']);
}
}
Flutter中处理future响应的问题可能出现的原因是用户在使用shared_preferences库时出现了一些错误。解决方法是创建一个单独的辅助/管理器来处理shared_preferences,并确保正确映射JSON和相应的模型。
在上述代码中,如果响应的状态码为200,则从响应体中解析出用户数据,并将用户的token存储到shared_preferences中。如果状态码不为200,则抛出异常。
下次检查用户是否已登录时,可以通过获取shared_preferences中的token来判断。如果token为空,则用户未登录;否则,用户已登录,可以导航到仪表盘页面。
在代码实现过程中,原始代码中的下划线被移除以修复错误,并提供了两个链接,一个是API响应的示例,另一个是用于正确映射JSON和模型的工具。
此外,用户还提到了另一个问题,但没有提供足够的信息。他在stackoverflow上提出了一个有关在FutureBuilder中导航的问题,并希望得到帮助。
以上是关于Flutter中处理future响应的问题的原因和解决方法的总结。