RangeError(索引):无效值:不在 0..7 范围内,包括:8
Posted
技术标签:
【中文标题】RangeError(索引):无效值:不在 0..7 范围内,包括:8【英文标题】:RangeError (index): Invalid value: Not in range 0..7, inclusive: 8 【发布时间】:2020-07-05 11:33:26 【问题描述】:我正在尝试显示从 API 请求中检索到的所有值。
这是它目前显示的内容:
我正在为页面使用列表视图构建器。可以从此链接检索 JSON:Here
这是我的整个页面代码:Code
【问题讨论】:
【参考方案1】:错误在您的 ListViewBuilder 中:
ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
itemCount: _ListFamilyPageState.data.body.family.length,
itemBuilder: (context, index)
return Container(
height: 74.0,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.only(
topRight: const Radius.circular(20.0),
bottomRight: const Radius.circular(20.0)),
),
width: MediaQuery.of(context).size.width - 50.0,
child: Center(
child: Text(
data.body.friends[index].id.toString(),
style:
TextStyle(fontSize: 24.0),
)));
,
)
您指定有family.length
个项目(在您的数据中:15),
但您正在从 friends[index]
中提取实际数据(您的数据中有 8 项)。
这会在渲染索引 8 处的项目时为您提供 RangeError。
最重要的是:您在自己的状态下使用静态数据:
class _ListFamilyPageState extends State<ListFamily>
static Relations data;
// ...
不要那样做。
【讨论】:
【参考方案2】:您已使用 _ListFamilyPageState.data.body.family.length 设置 ListView 的 itemCount 属性,并且您已将其构建器的索引与另一个列表 data.body.friends[index].id.toString()
我认为两者的元素数量不同
【讨论】:
以上是关于RangeError(索引):无效值:不在 0..7 范围内,包括:8的主要内容,如果未能解决你的问题,请参考以下文章
RangeError(索引):无效值:不在 0..7 范围内,包括:8
颤振:RangeError(索引):无效值:不在包含范围内0..27:28
Flutter:RangeError(索引):无效值:不在0..14范围内,包括:15
Flutter - RangeError(索引):无效值:有效值范围为空:0
Flutter:DioError [DioErrorType.DEFAULT]:RangeError(索引):无效值:只有有效值为0: