Flutter开发 Expected a value of type ‘List<Widget>‘, but got one of type ‘List<dynamic>‘

文章讲述了在Dart编程中,作者在尝试将传入的不同类型List转换为Widget列表时遇到的问题,特别是在使用map方法时遇到类型错误。最终通过使用for循环解决了问题,但对map方法返回动态类型和如何影响循环结果感到不解。
摘要由CSDN通过智能技术生成

在对接数据前,使用了如下代码

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;
}

问题解决,但是还是不态理解其原理~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值