You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何将Stateless Widget改为Stateful Widget后无法使用.sum方法?

问题:Stateless转Stateful后List的sum方法报错

原本在Stateless Widget中正常运行的函数,改为Stateful Widget后,numbers.sum代码处出现波浪线,报错提示:

'List'类型没有定义getter 'sum'。尝试导入定义了'sum'的库,将名称更正为现有getter的名称,或者定义一个名为'sum'的getter或字段。

问题原因

这个报错和Stateless/Stateful Widget的类型无关,核心是Dart原生List类本身并没有内置sum方法。你之前在Stateless Widget中能正常使用,大概率是因为当时导入了第三方库(比如collection包的扩展),或者自己给List写了扩展方法,但在转换为Stateful Widget时,对应的导入或扩展代码没有同步到新的文件/代码块中。

解决办法

  • 若使用第三方库(如collection):确保当前Stateful Widget所在文件顶部导入对应库:
    import 'package:collection/collection.dart';
    
  • 若使用自定义扩展:将你的sum扩展方法代码复制到当前文件,或确保它被正确导入
  • 也可以手动计算总和,无需依赖扩展:
    final sum = numbers.fold(0.0, (prev, curr) => prev + curr);
    

内容的提问来源于stack exchange,提问作者Mackina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 02:20:28