颤振代码中的'Future<GroupBy>'实例



从原始代码中,我无法获得相同的结果

这是的原始代码

loadPreviousEvents() {
mySelectedEvents = {
"2022-09-13": [
{"eventDescp": "11", "eventTitle": "111"},
{"eventDescp": "22", "eventTitle": "22"}
],
"2022-09-30": [
{"eventDescp": "22", "eventTitle": "22"}
],
"2022-09-20": [
{"eventTitle": "ss", "eventDescp": "ss"}
]
};
print(mySelectedEvents);
}

我想从我的数据库中检索相同的东西

这是我尝试过但没有成功的

loadPreviousEvents() async {
var url = 'http://prospection.global-aeit.com/getEvents.php';
var res = await http.get(Uri.parse(url));
var response = json.decode(res.body) as List;
print(response);
var mySelectedEvents =
(response.map((e) async => GroupBy.fromJson(e))).toList();
print(mySelectedEvents);
return mySelectedEvents;
}

通过打印print(mySelectedEvents);

[Instance of 'Future<GroupBy>', Instance of 'Future<GroupBy>', Instance of 'Future<GroupBy>', Instance of 'Future<GroupBy>', Instance of 'Future<GroupBy>']

打印print(response);给出

[{日期:2022-09-17,事件描述:azerty,事件标题:azertyui},{日期∶2022-09-18,事件描述∶11,事件标题∶AZE},{日期:2022年9月17日,事件描述:22,事件标题:4556},〔日期:2022:09-20,事件描述p:77,事件标题;HHJ},\日期:2020年9月11日,事件名称:BYYY}〕

由于async关键字,您正在强制map方法返回Future

把它取下来,你就没事了。

测试以下它可以帮助你:

Future<void> main() async {
final res = await dbRequest();
print(res);
final mySelectedEvents = (res.map((e) => GroupBy.fromJson(e))).toList();
print(mySelectedEvents);
}
Future<List<dynamic>> dbRequest() async {
return [
{'date': '2022-09-17', 'eventDescp': 'azerty', 'eventTitle': 'azertyui'},
{'date': '2022-09-17', 'eventDescp': '11', 'eventTitle': 'AZE'},
{'date': '2022-09-17', 'eventDescp': '22', 'eventTitle': '4556'},
{'date': '2022-09-20', 'eventDescp': '77', 'eventTitle': 'HHJ'},
{'date': '2022-09-17', 'eventDescp': '44', 'eventTitle': 'BYYY'}
];
}

未解决的问题

["GroupBy"的实例,"GroupBy的实例,"GroupBy"的实例,,"GroupBy"的实例]

@override
void initState() {
// TODO: implement initState
super.initState();
_selectedDate = _focusedDay;
loadPreviousEvents();
}
Future<void> loadPreviousEvents() async {
print("object");
final res = await dbRequest();
final mySelectedEvents = (res.map((e) => GroupBy.fromJson(e))).toList();
print(mySelectedEvents);
}
Future<List<dynamic>> dbRequest() async {
var url = 'http://prospection.global-aeit.com/getEvents.php';
var res = await http.get(Uri.parse(url));
var response = json.decode(res.body);
print(response);
return response;}

最新更新