Flutter使用GridView.count触发索引越界范围错误问题求助
错误根源
你定义的reviews数组遗漏了元素之间的英文逗号分隔符:
// 错误写法 var reviews =[ "5.0 (23 reviews)" "5.0 (23 reviews)" "5.0 (23 reviews)" "5.0 (23 reviews)" ];
Dart语法中,多个相邻字符串没有分隔符时会自动拼接为单个字符串,因此你声明的reviews数组实际长度仅为1,而GridView按照items.length=4生成4个子项,当循环到index=1时访问reviews[index]就会触发「索引小于1:1」的越界报错。
修复方法
- 给
reviews数组的每个字符串元素末尾添加英文逗号,修正数组长度:
var reviews =[ "5.0 (23 reviews)", "5.0 (23 reviews)", "5.0 (23 reviews)", "5.0 (23 reviews)", ];
- 额外优化建议:你的代码中嵌套了两层
MaterialApp(MyApp和Home组件各返回了一个),属于冗余定义,建议删除Home组件内的MaterialApp,直接返回Scaffold即可,避免后续出现路由、主题配置冲突的问题。
内容的提问来源于stack exchange,提问作者Ammar Mohib
相关产品推荐
相关产品推荐

