Flutter - 调用 addAll 函数时地图不起作用

Flutter - Map not working when addAll function call

这是我现在拥有的代码(我正在使用 Mobx):

@observable
ObservableMap dates = ObservableMap();

@action
void getDate() {
  final Map obj = {};
  final map = item['dates'].map((date) {
    DateTime key = DateTime.parse(date['date']);

    obj.addAll({
      key: ['list']
    });
  });

//    print(map);
  dates.addAll(obj);
}

我有调用查询和调用getDate函数的函数。

在我的 UI 我只是调用 dates 但它不会 return 任何值。如果 print 语法未注释,则该值仅 return。

有解决办法吗?

您正在使用 map 方法为 item['dates'] 的每个元素做一些事情。这不起作用,因为 map 操作是 惰性 并且在您开始 使用 结果之前不会执行任何操作。您可以对结果调用 .toList() 以使其完成所有计算,但这是一种迂回的方式。

使用 forEach 来急切地为每个元素做一些事情,或者更好的是,使用 for-in 循环:

item['dates'].forEach((date) { ... });

for (var date in item['dates']) {
  var key = DateTime.parse(date['date']);
  obj.addAll({key: ['list']});
  // or just:
  // obj[key] = ['list'];
}