【问题标题】:How to sort list of objects in flutter?如何对颤动中的对象列表进行排序?
【发布时间】:2020-10-26 18:19:28
【问题描述】:

我做错了什么?当我尝试对 _notes 进行排序时,出现“构造函数的名称必须与封闭类的名称匹配”。错误。

List<Note> _notes = [
Note(id: '1', date: DateTime.utc(2020, 11, 9), title: 'One', name: 'Name1'),
Note(id: '2', date: DateTime.now(), title: 'Two', name: 'Name2'),
Note(id: '2', date: DateTime.utc(2020, 05, 15), title: 'Two', name: 'Name3')];
_notes.sort((a,b)=>a.date.difference(DateTime.now()).inDays.compareTo(b.date.difference(DateTime.now()).inDays));

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    你确定你已经把你的代码放到了一个方法中,例如主要的?以下代码工作正常:

    class Note {
      final String id;
      final DateTime date;
      final String title;
      final String name;
    
      Note({this.id, this.date, this.title, this.name});
    
      @override
      String toString() => 'Note(id: $id, date: $date, title: $title, name: $name)';
    }
    
    void main() {
      final _notes = [
        Note(id: '1', date: DateTime.utc(2020, 11, 9), title: 'One', name: 'Name1'),
        Note(id: '2', date: DateTime.now(), title: 'Two', name: 'Name2'),
        Note(id: '2', date: DateTime.utc(2020, 05, 15), title: 'Two', name: 'Name3')
      ];
    
      _notes.sort((a, b) => a.date
          .difference(DateTime.now())
          .inDays
          .compareTo(b.date.difference(DateTime.now()).inDays));
    
      _notes.forEach(print);
      // Note(id: 2, date: 2020-05-15 00:00:00.000Z, title: Two, name: Name3)
      // Note(id: 2, date: 2020-10-26 19:55:41.351673, title: Two, name: Name2)
      // Note(id: 1, date: 2020-11-09 00:00:00.000Z, title: One, name: Name1)
    }
    

    【讨论】:

      【解决方案2】:

      它应该可以工作:

       _notes.sort((a,b) => a.date.compareTo(b.date));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-10-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多