【发布时间】:2020-10-19 11:53:15
【问题描述】:
在我的 streamBuilder 中,我的数组列表包含格式为 (dd-MM-yyyy) 的日期。 我想按升序排列列表。 获取Datasnapshot后我在StreamBuilder中使用的代码
Map<dynamic, dynamic> data = snap.data.snapshot.value;
List item = [];
data.forEach(
(index, data) => item.add(
{"key": index, ...data}
)
);
item..sort((a,b)=>a['key'].compareTo(b['key']));
我期待的结果是 16-06-2020 17-06-2020 18-06-2020 19-06-2020 22-06-2020 04-07-2020
我得到的结果是 04-07-2020 16-06-2020 17-06-2020 18-06-2020 19-06-2020 22-06-2020
【问题讨论】:
-
a['key']是什么类型?看起来是String,它解释了奇怪的排序,而不是DateTime? -
@julemand101 是的,它是从 Firebase 数据库读取的子值。你能帮我如何在 DateTime 中排序吗?
-
需要将a['key']和b['key']解析为DateTime。 api.flutter.dev/flutter/dart-core/DateTime/parse.html
标签: sorting flutter dart flutter-test stream-builder