因此,目前我正在使用Flutter构建应用程序,这对我来说仍然是新手,而我在该标题中一直停留在那些例外情况上。
问题是,当我尝试在ListView.builder上调用“ widget.usernames.length”时,如果它为null,则它将返回那些异常,并且在有数据时也将没有异常。
我要完成的工作是get Length函数应返回null或0值,以便ListView在没有数据时不显示任何内容。
return new Expanded(
child: ListView.builder(
padding: new EdgeInsets.all(8.0),
itemExtent: 20.0,
itemCount: widget.usernames.length,
itemBuilder: (BuildContext context, int index){
return Text("Bank ${widget.usernames[index] ?? " "}");
}
),
);
我已经尝试过
itemCount: widget.usernames.length ?? 0
但仍然没有成功。
编辑**
感谢Jeroen Heier,这段代码很好用。
var getUsernameLength = 0 ;
if(widget.usernames == null){
return getUsernameLength;
}else{
return widget.usernames.length;
}
答案 0 :(得分:4)
如果您使用“ widget.usernames.length”之类的构造,则编程代码可能会在两个地方失败:
您不能在空对象上调用方法和属性;这就是为什么您会收到此错误。因此,在调用widget.usernames.length之前,必须确保两种情况均不会发生。如何完成以及是否确实需要检查取决于程序的其余部分。一种检查方法是:
return widget?.username?.length ?? 0;
答案 1 :(得分:0)
widget.usernames.length 似乎只是声明。但未初始化或未赋值。所以它抛出一个空错误。
您应该将值分配给 widget.usernames.length 作为 List<int> widget.usernames.length = [1,4,5,7];
或根据要求从父级传递数据。
也可以检查空
itemCount: widget.usernames.length != null ? widget.usernames.length : 0;