Flutter 处理 future 响应

14 浏览
0 Comments

Flutter 处理 future 响应

登录后,我想存储令牌值并使用go路由器导航到主页。我不知道如何处理显示或检索姓名和角色等JSON数据...我是一个编程新手。请帮助我,谢谢!我尝试了futurebuilder示例,但它没有起作用。请给我一个简单的解决方案。

Future fetchLoginuser(String mobile, String password) async {

final response = await http.post(

Uri.parse('https://random.url/api/login'),

headers: {

'Content-Type': 'application/json; charset=UTF-8',

},

body: jsonEncode(

{'mobile': mobile, 'password': password}));

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 json) {

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 json) {

return Loginuser(

message: json['message'],

messagecode: json['messagecode'],

token: json['token'],

userinfo: json['userinfo']);

}

}

0
0 Comments

Flutter中处理future响应的问题可能出现的原因是用户在使用shared_preferences库时出现了一些错误。解决方法是创建一个单独的辅助/管理器来处理shared_preferences,并确保正确映射JSON和相应的模型。

在上述代码中,如果响应的状态码为200,则从响应体中解析出用户数据,并将用户的token存储到shared_preferences中。如果状态码不为200,则抛出异常。

下次检查用户是否已登录时,可以通过获取shared_preferences中的token来判断。如果token为空,则用户未登录;否则,用户已登录,可以导航到仪表盘页面。

在代码实现过程中,原始代码中的下划线被移除以修复错误,并提供了两个链接,一个是API响应的示例,另一个是用于正确映射JSON和模型的工具。

此外,用户还提到了另一个问题,但没有提供足够的信息。他在stackoverflow上提出了一个有关在FutureBuilder中导航的问题,并希望得到帮助。

以上是关于Flutter中处理future响应的问题的原因和解决方法的总结。

0