首页 > 解决方案 > 类实例变量未初始化(飞镖)

问题描述

我正在尝试为我的列表分配值,但是当我在分配后打印列表的长度时,即使它有一个值,它也会给我零。我不确定出了什么问题。这是代码:

// models
import '../models/models.dart';

class EventsProvider {
  // list of events
  final List<Event> _events = [
    Event(day: DateTime(2021, 9, 15), title: 'hello'),
  ];

  // method to get an event of a specific date
  List<Event> getEventsForDay(DateTime day) {
    print(_events.length);
    return _events.where((event) => event.day == day).toList();
  }
}

输出

在此处输入图像描述

我不知道出了什么问题。任何帮助将不胜感激。

标签: flutterdart

解决方案


我试过你的代码,它工作正常:

void main() {
  EventsProvider().getEventsForDay(DateTime(2021, 9, 15));

//Check the return value of the getEventForDay() function
  for(final event in provider){
    print(event.day);
  }
}


class EventsProvider {
  // list of events
  final List<Event> _events = [
    Event(day: DateTime(2021, 9, 15), title: 'hello'),
  ];

  // method to get an event of a specific date
  List<Event> getEventsForDay(DateTime day) {
    print(_events.length);
    return _events.where((event) => event.day == day).toList();
  }
}


class Event{
  final DateTime? day;
  final String? title;
  
  const Event({this.day, this.title});
}

不要忘记 getEventForDay 函数返回一个满足您那里条件的事件列表。


推荐阅读