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
相关产品推荐
相关产品推荐

