在对接数据前,使用了如下代码
List<Widget> setList() {
final list2 = ["1","2"];
return list2.map((e) => Text(e)).toList();
}
循环为写死的数据,正常运行,但是以参数形式加入之后,系统报错:
Expected a value of type 'List<Widget>', but got one of type 'List<dynamic>'
List<Widget> setList(list) {
return list.map((e) => Text(e)).toList();
}
非常难以理解,为什么指示循环遍历的变化,导致了返回类型的变化,通过查询(不太确定):
map
方法在 Dart 中是高阶函数,它返回一个新的 List<dynamic>
对象,而不是 List<Widget>
。
最后修改了写法:
List<Widget> setList(list) {
List<Widget> res = [];
for (var element in list) {
res.add( Text(element));
}
return res;
}
问题解决,但是还是不态理解其原理~