javascript - Dart中的javascript “map”等价是什么?

标签 javascript dart

我是Dart的新手,我注意到map方法的工作原理与Javascript不同。

我正在尝试将动态列表转换为对象列表。

在Javascript中,这将起作用:

List<BoxType> boxTypes = data["boxTypes"].map((dynamic boxType) => BoxType.fromDynamic(boxType));

但是在Dart中,我遇到了以下错误:
Exception has occurred.
_TypeError (type 'MappedListIterable<dynamic, dynamic>' is not a subtype of type 'List<BoxType>')

我看到我可以像这样在结尾处做一个.toList():
List<BoxType> boxTypes = data["boxTypes"].map((dynamic boxType) => BoxType.fromDynamic(boxType)).toList();

但这会产生此错误:
Exception has occurred.
_TypeError (type 'List<dynamic>' is not a subtype of type 'List<BoxType>')

所以,我应该用什么代替map呢?

编辑:就目前而言,这就是我正在做的事情,虽然有点难看,但效果很好
for (var i = 0; i < data["boxTypes"].length; i++) {
  boxTypes.add(BoxType.fromDynamic(data["boxTypes"][i]));
}

最佳答案

因为您在dynamic中使用了map,而不是BoxType-该错误显示'List<dynamic>' is not a subtype of 'List<BoxType>',所以只需解决此问题便可以:

List<BoxType> boxTypes = data["boxTypes"].map((BoxType boxType) => BoxType.fromDynamic(boxType)).toList();

关于javascript - Dart中的javascript “map”等价是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55758676/

相关文章:

firebase - 任务 ':app:transformClassesAndResourcesWithR8ForRelease' 执行失败。在尝试获取 flutter 应用程序的 apk 时

flutter - 向DropDownButton添加单独的值

javascript - 我在根据复选框有条件地读取数据时遇到问题

javascript - Node 从url中获取json

使用模态弹出窗口的 Javascript 选择控件

javascript - 简单的 JavaScript 和 jQuery 函数 'Sometimes' 运行太多次

sorting - 如何根据函数返回的值在dart中对List进行排序

dart - 怎么解决 找不到: 'dart:ui' error while running integration tests on Flutter

generics - dart,为什么我不能在方法上使用泛型

javascript - Google Drive api max-age(缓存)