Оператор проверки Null, используемый для нулевого значения в Futurebuilder

#flutter

Вопрос:

Когда я запускаю приложение. Я получил сообщение «Оператор проверки Null, используемый для нулевого значения».

Это сообщение об ошибке, которое я получил.

 ======== Exception caught by widgets library =======================================================
The following _CastError was thrown building FutureBuilder<List<SocialCommentModel>>(dirty, state: _FutureBuilderState<List<SocialCommentModel>>#d495e):
Null check operator used on a null value

The relevant error-causing widget was: 
  FutureBuilder<List<SocialCommentModel>> file:///C:/Users/user/AndroidStudioProjects/Unikaive/lib/ui/detailedPost/DetailedPostScreen.dart:367:15
When the exception was thrown, this was the stack: 
#0      _DetailedPostScreenState._buildPostWidget.<anonymous closure> (package:unikaive/ui/detailedPost/DetailedPostScreen.dart:381:49)
#1      _FutureBuilderState.build (package:flutter/src/widgets/async.dart:775:55)
#2      StatefulElement.build (package:flutter/src/widgets/framework.dart:4691:27)
#3      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4574:15)
#4      StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
...
====================================================================================================

 

И это футер-строитель, у которого есть проблема.

 FutureBuilder<List<SocialCommentModel>>(
                  future: _commentsFuture,
                  initialData: [],
                  builder: (context, snapshot) {
                    if (snapshot.connectionState == ConnectionState.waiting) {
                      return Container(
                        child: Center(
                          child: CircularProgressIndicator(),
                        ),
                      );
                    } else {
                      return ListView.builder(
                        padding: EdgeInsets.only(top: 8, bottom: 60),
                        physics: NeverScrollableScrollPhysics(),
                        itemCount: snapshot.data!.length,
                        itemBuilder: (context, index) {
                          SocialCommentModel comment = snapshot.data![index];
                          return _commentWidget(comment);
                        },
                        shrinkWrap: true,
                      );
                    }
                  }),

 

Нет никаких проблем, когда я делал флаттера доктором.

Пожалуйста, помогите.

Ответ №1:

Добавьте это в свой код:

 if (!snapshot.hasData) {
     return Container(
       child: Center(
         child: CircularProgressIndicator(),
       ),
     );
}
 

Комментарии:

1. Это»! снимок.hasData» вместо»! снимок.hadData».