在 null 上调用了 Getter 'Length'

时间:2021-04-28 15:25:18

标签: firebase flutter google-cloud-firestore

当我打开标签时,有一秒钟,有这个错误。然后它就消失了,我该如何解决这个问题? 我假设生成长度值需要时间?

class rideList extends StatefulWidget {
  @override
  _rideListState createState() => _rideListState();
}

class _rideListState extends State<rideList> {
  @override
  Widget build(BuildContext context) {

    final rides = Provider.of<List<RideDetails>>(context);
    int count = 0;

    if (rides.length != null) {
      return ListView.builder(
        itemCount: rides.length,
        itemBuilder: (context, index) {
          print('Rides: ${rides.length}');
          if (rides[index].limit == true) {
            return RideTile(ride: rides[index]);
          }
          else if(rides[index].limit == false){
            ++count;
            if(rides.length == count){
              print('no rides');
              return Center(child: Text('No rides posted yet. Be the first to post a ride!'));
            }
            else{
              return SizedBox(height: 20.0,);
            }
          }
          return SizedBox(height: 20.0,);
        },
      );
    }
  }
}

Error

Error goes away

1 个答案:

答案 0 :(得分:1)

如果 rides 总是一个可以为 null 的 List(),

你应该使用条件 => if (rides != null)

而不是 => if (rides.length != null)

错误正在发生,因为在调用属性 rides 之前,您必须先检查 length 是否为空。