(FLUTTER) --- RangeError (index): Invalid value: Valid value range is empty: 0

时间:2021-07-30 22:22:45

标签: list flutter null

行( mainAxisAlignment: MainAxisAlignment.center, 孩子们: [ 填充( 填充:const EdgeInsets.all(8.0), 孩子:图标( 密码[0] == 空?未更改密码:已更改密码, 颜色:Colors.white, 尺寸:20, ),

谁能解释一下为什么我不能写一个 if 语句来检查索引的值是否等于空值?

2 个答案:

答案 0 :(得分:1)

密码[0] 不存在。 看来密码是一个列表

如果是地图,您可以执行 password[0] == null ,但事实并非如此。这是一个清单。那个值不存在。它不是空的。它不存在。所以它爆炸了。

为什么不存在?因为内存没有分配。 Flutter 会在你需要的时候自动分配内存。如果您执行 password.add(value),则此时 password[0] 将存在。但是由于您收到范围错误,因此您没有使用 password.add

对于列表,使用 password.isNotEmpty 或 password.length == 0;

答案 1 :(得分:0)

使用 password.isEmpty 而不是 password[0] == null