flutter - 从 Future 返回一个对象在颤振中
问题描述
我正在努力将 Future 解析为对象。我想从对象中检索数据User
。我可以得到用户数据,但它仍然在里面。Future<List<User>>
User
Future
Future<List<User>> getDataUser(String name_,int id_) async{
var datajson=await Network.getData("https://jsonplaceholder.typicode.com/users?username=$name_&id=$id_");
final response=jsonDecode(datajson);
List<User> fuser=response.map((r)=>User.fromJson(r)).toList();
User user_=fuser.single;
print('response: '+user_.name);
return fuser;
}
编辑:Network.getData
是Future<dynamic>
当我调用时activeUser()
,我希望它返回一个对象 ( User
)。
User activeUser(Future<List<User>> fuser){
List<User> user=fuser as List<User>;
print('user: '+user.single.username);
return user.single;
}
我总是会error : type 'Future<List<User>>' is not a subtype of type 'List<User>'
避免使用builder(FutureBuilder
或ListView.Builder
其他),因为我不打算列出清单。它只是一张地图。我想要的Future<List<User>>
是返回一个User
对象。我使用的 REST API,返回一个列表,而不是一个对象
[
{
"id": 1,
"name": "Leanne Graham",
"username": "Bret",
"email": "Sincere@april.biz",
"address": {
"street": "Kulas Light",
"suite": "Apt. 556",
"city": "Gwenborough",
"zipcode": "92998-3874",
"geo": {
"lat": "-37.3159",
"lng": "81.1496"
}
},
"phone": "1-770-736-8031 x56442",
"website": "hildegard.org",
"company": {
"name": "Romaguera-Crona",
"catchPhrase": "Multi-layered client-server neural-net",
"bs": "harness real-time e-markets"
}
}
]
- 注意矩形括号,它是一个带有一个 json 映射的列表。
解决方案
尝试这个:
var fName;
...
getDataUser(name, id).then((fuser){
print('user: '+ fuser.single.username);
this.fName = fuser.single;});
推荐阅读
- hardware - AMD X470 SMBus 规范
- android - RecyclerView 在 ConstraintLayout 内更改其滚动位置
- c - C 编程:如果我将整数放入 char 数组中,那么打印的数字是什么类型?
- python - 为小部件添加透明度 - Tkinter
- android-ndk - Android NDK-r18 的超强编译问题
- java - 修改正则表达式以匹配各种 ISO 语言代码
- java - 程序生成错误说我的方法不适用于我的论点
- google-cloud-platform - GCP——API 和服务:以编程方式创建 OAuth 客户端 ID 凭据
- python-3.x - Selenium 在循环中检索文章,给出 NoSuchElementException
- notifications - Windows 10 上未显示电子桌面通知