Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Adding new elements to map in loop

Tags:

flutter

dart

Ok i think its newbie question I have map with datetime-list, if i do something like this its work perfect:

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

But i want it like in 'for loop' => wrong example:

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

 }

looks good to me but says NoSuchMethedError: The method '[]=' was called null.

like image 629
alternative4 Avatar asked Feb 03 '26 10:02

alternative4


1 Answers

In first code, you are initializing the _activites variable, because of that you don't get error;

_activities = {.....

But in the second one, you don't initialize, so this is what you need:

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

 }

In Dart every object is null by default, so you must initialize it.

like image 69
Esen Mehmet Avatar answered Feb 04 '26 23:02

Esen Mehmet



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!