好吧,我认为这是新手的问题 我有带日期时间列表的地图,如果我做这样的事情,它的工作就很完美:
let highestSalarayDepartment = json.sort((a, b) => (parseInt(a.salary) > parseInt(b.salary)) ? -1 : +1)[0]
但是我想要像'for循环'=>错误的示例:
Map<DateTime, List> _activities;
_activities = {
_currentDay.add(Duration(days: 0)):activityNames.toList(),
_currentDay.add(Duration(days: 7)):activityNames.toList(),
_currentDay.add(Duration(days: 14)): activityNames.toList(),
_currentDay.add(Duration(days: 21)): activityNames.toList(),
_currentDay.add(Duration(days: 28)): activityNames.toList(),
}
对我来说看起来不错,但说NoSuchMethedError:方法[[] ='被称为null。
答案 0 :(得分:2)
在第一个代码中,您正在初始化_activites
变量,因此不会出错;
_activities = {.....
但是在第二个中,您不需要初始化,所以这是您需要的:
Map<DateTime, List> _activities = {};
for( var i = 0 ; i <= 28; i=i+7 ) {
_activities[_currentDay.add(Duration(days:i))]=activityNames.toList();
}
在Dart
中,每个对象默认都是null
,因此必须对其进行初始化。