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

Flutter中Scaffold引发StackOverflowError问题求助

StackOverflowError 原因及修复

你触发栈溢出的核心原因是无限递归创建Home widget:

在_HomeState里定义的pages数组中,第一个元素是Home(),而Home的build方法又会将pages[index]作为Scaffold的body。当默认index=0时,会创建新的Home实例,这个新实例的build又会创建Home,循环往复,不断占用栈空间直到溢出。

修复方法

把pages数组里的Home()替换成真正的首页内容组件,不要引用当前的Home类本身。比如:

final pages = [
  // 替换为你的首页实际内容,比如单独的首页组件或临时占位
  const Center(child: Text('首页')),
  Add(),
  Setting(),
];

如果已经有专门的首页内容组件(比如HomeContent),就改成:

final pages = [
  HomeContent(),
  Add(),
  Setting(),
];

这样就能避免递归调用,解决栈溢出问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 04:30:54