首页 > 解决方案 > flutter list.sort 没有给出结果

问题描述

我有一个从 firestore 获得的名为“allResults”的列表,这个列表看起来像这样:

resultList= [{createdAt: Timestamp(seconds=1630015336, nanoseconds=0), UserID: crGDzZU7nrNoz0EIHoT4AcMrRre2}, {createdAt: Timestamp(seconds=1630101736, nanoseconds=0), UserID: crGDzZU7nrNoz0EIHoT4AcMrRre2]

我正在尝试createdAt使用以下代码按时间戳对该列表进行排序:

resultList.sort((a, b) => a["createdAt"].seconds.compareTo(b["createdAt"].seconds))

问题是,在我调用这种排序之后,程序只是没有吐出任何东西,有点像它的排序永远并且无法退出。我没有收到错误消息,但也没有结果,并且我在排序之后运行的任何命令都不会被执行。

有人在我的排序代码中看到错误吗?

太感谢了!

标签: firebasefluttersortingdart

解决方案


请注意,在您的帖子中,您给出了 的内容示例allResults,但您正在尝试对另一个名为 的列表进行排序resultList。但是,如果它们是相同的类型,请尝试以下操作:

resultList.sort((a, b) => (a["createdAt"] as Timestamp).seconds.compareTo((b["createdAt"] as Timestamp).seconds))

或这个:

resultList.sort((a, b) => (a["createdAt"].toString() ).compareTo(b["createdAt"].toString()))

当您定义allResults列表时,将其声明为:

List<Map<String, dynamic>> allResults

推荐阅读