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

Flutter:ListView.builder索引传递至BookFeederSearch触发RangeError

排查ListView.builder传索引触发RangeError的原因

你遇到的错误信息如下:

════════ Exception caught by widgets library ═══════════════════════════════════
抛出RangeError (index): Invalid value: Valid value range is empty: 0

结合你的描述,可能的原因及排查方向:

  • 数据源与itemCount不匹配:检查Search2页面中ListView.builder的itemCount是否正确绑定了数据源的长度。如果数据源为空,但itemCount被错误设置为大于0的值,或者触发跳转前数据源被意外清空,即使打印的索引值看似正确,访问索引0也会触发报错。
  • 异步数据加载时序问题:若数据源是异步获取的,可能ListView.builder渲染初期数据还未返回,此时itemCount为0,但你已触发跳转并传递了索引。这种情况下,目标页面BookFeederSearch接收索引后,若自身数据源也未加载完成,就会用索引0访问空列表。
  • 目标页面数据源未初始化:错误未必出在Search2的传值环节,而是BookFeederSearch页面接收索引后,用来访问的数据源是空的。检查目标页面中对应的数据列表是否在接收索引时已完成初始化,且包含至少一个元素。
  • 索引传递逻辑错误:确认ListView.builder中onTap事件的索引获取逻辑,比如是否直接使用了当前循环的index变量,有没有出现变量被外部逻辑污染的情况(比如异步回调中误用循环外的索引变量)。

若能提供Search2页面的具体代码片段,可更精准定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 03:20:04