如何在 Flutter 中获取 Future<List> 项的某个数据索引?
Posted
技术标签:
【中文标题】如何在 Flutter 中获取 Future<List> 项的某个数据索引?【英文标题】:How to take a certain data index of Future<List> item in Flutter? 【发布时间】:2022-01-14 22:01:32 【问题描述】:获取最新数据索引有问题
class User
final String idUser,
name,
phone;
User(
this.idUser,
this.name,
this.phone);
factory User.fromJson(Map<String, dynamic> json)
return User(
idUser: json['_id'],
name: json['name'],
phone: json['phone']);
List<User> userFromJson(jsonData)
List<User> result =
List<User>.from(jsonData.map((item) => User.fromJson(item)));
return result;
// index
Future<List<User>> fetchUser() async
String route = AppConfig.API_ENDPOINT + "userdata";
final response = await http.get(route);
if (response.statusCode == 200)
var jsonResp = json.decode(response.body);
return userFromJson(jsonResp);
else
throw Exception('Failed load $route, status : $response.statusCode');
和调用方法就是这样
user = fetchUser();
这样评价的“response.body”
["_id":"4136425eb8d9320f4822c554","name":"John","phone":"90643755394","_id":"62766b2eb45s3w0g4662ftd3","name":"Anna","timestamp" :"90345765791"]
我希望这是如何使用第一个索引来获取最新数据,但我不知道代码会怎样。另外,如果有其他解决方案可以获取最新数据,请告诉我,非常感谢
【问题讨论】:
【参考方案1】:您可以使用数组索引号来获取数组中的第一个对象。
if (response.statusCode == 200)
var jsonResp = json.decode(response.body);
return List<User>.from(jsonResp.map((user) => User.fromJson(user)));
else
throw Exception('Failed load $route, status : $response.statusCode');
如果您只想获得一个用户
if (response.statusCode == 200)
var jsonResp = json.decode(response.body);
return User.fromJson(jsonResp[0]);
else
throw Exception('Failed load $route, status : $response.statusCode');
其他方法是使用LIMIT 1
修改查询
【讨论】:
在 List使用索引从列表中获取特定值
userFromJson(jsonResp[0]); /// For first record
【讨论】:
在 List因为它的未来你必须使用 await 关键字来获得完整的结果,所以通过添加 await 来修改你的代码
users = await fetchUser();
现在您可以访问用户列表
var firstUser = users.first;
var firstUser = users[0];
更多 await 和 async 你可以阅读这个Asynchronous programming
【讨论】:
is "users.first" 表示对象名称 "users" 的名为 "user" 的类中名为 "first" 的属性? 没有它的 List users[0] 属性和 users.first 给出相同的结果 api.dart.dev/stable/2.15.0/dart-core/List/first.html 如果我打印第一个用户,它重视“用户”的实例 您的数据是一个 ListfirstUser.idUser
和 firstUser.name
和 firstUser.phone
以上是关于如何在 Flutter 中获取 Future<List> 项的某个数据索引?的主要内容,如果未能解决你的问题,请参考以下文章
Flutter - 在future函数之后从getter中获取值
使用flutter_local_notifications时如何在Flutter中将Future<Null>转换为Future<dynamic>?
如何将 Future<dynamic> 转换为 dart:flutter 中的字符串