【问题标题】:flutter list.sort doesnt give resultflutter list.sort 没有给出结果
【发布时间】:2021-09-02 17:12:19
【问题描述】:

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

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

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

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

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

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

非常感谢!

【问题讨论】:

  • 您能否发布一个可重现的示例来演示该问题?或者至少显示您尝试“在此排序后吐出任何内容”的代码?

标签: firebase flutter sorting dart


【解决方案1】:

请注意,在您的帖子中,您提供了 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

【讨论】:

  • 啊,是的,我把allResultsresultList弄混了,它们基本上是一样的,不可能是问题的原因。
  • 感谢您的想法,我尝试了所有想法但没有得到好的结果,但是现在它给了我null 作为输出而不是什么都没有,所以我想这是某种进步 ^ ^.
猜你喜欢
  • 2018-11-30
  • 2014-03-12
  • 1970-01-01
  • 1970-01-01
  • 2013-07-13
  • 1970-01-01
  • 2020-06-30
  • 2023-03-16
  • 2019-05-17
相关资源
最近更新 更多