Геттер «Длина» был вызван при нулевом значении

# #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,);
        },
      );
    }
  }
}

 

Ошибка

Ошибка уходит

Ответ №1:

Если rides это всегда список (), который может быть равен нулю,

вы должны использовать условное => if (rides != null)

вместо => > if (rides.length != null) .

Ошибка возникает из-за того, что вы должны сначала проверить, не является ли rides она нулевой, прежде чем вызывать свойство length .