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

Flutter代码在模拟器触发StackOverflow错误,该如何修改?

Flutter代码StackOverflow错误修复方案

你这段代码触发栈溢出的核心原因是无限递归:你定义的getter方法名RecentTransation和要过滤的数据源同名了,导致每次调用这个getter时,它都会自己调用自己,循环往复直到栈被耗尽。

需要做这两处修改:

  • 把getter的名称和原始数据源变量区分开(比如原始数据源用私有变量_recentTransactions,getter用小驼峰的recentTransactions,符合Dart命名规范)
  • 删掉Duration(days: 6)后面多余的逗号,修正语法错误

修正后的代码示例:

// 假设这是你的原始数据源列表
List<Transition> _recentTransactions = [];

List<Transition> get recentTransactions {
  return _recentTransactions.where((tx) {
    return tx.date.isAfter(DateTime.now().subtract(Duration(days: 6)));
  }).toList();
}

说白了就是:别让getter的名字和它要访问的数据源重名,不然会自己调用自己搞死程序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 07:50:18