flutter - 添加新元素以循环映射

标签 flutter dart

好的,我认为这是新手问题 我有带有日期时间列表的 map ,如果我做这样的事情它的工作完美:

    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(),
  }

但我希望它像在“for 循环”中那样 => 错误示例:

  for( var i = 0 ; i <= 28; i=i+7 ) {
_activities[_currentDay.add(Duration(days:i))]=activityNames.toList();

 }

我觉得不错,但显示 NoSuchMethedError: The method '[]=' was called null。

最佳答案

在第一个代码中,您正在初始化 _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,因此您必须对其进行初始化。

关于flutter - 添加新元素以循环映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57710173/

相关文章:

flutter - 如何解析 Dart/Flutter 中的异常对象

caching - 如何在Dart中缓存半身像

flutter - 如何在 Flutter 中包装 TextFormField 验证器消息?

android - Firebase 身份验证单元测试错误 No Firebase App

asynchronous - 我怎样才能正确地从使用 Futures/async/await 的流中产生?

flutter - AutoCompleteTextField不显示json数据波动

flutter - Flutter 有没有屏幕共享包?

firebase-realtime-database - 使用 flutter 和 firebase auth 将用户保留在设备上

带有 flutter_bloc 的 Flutter testWidgets - 测试仅在一起执行时失败

flutter - 在flutter中从子选项卡动态设置appbar Action