_CastError(用于空值的空检查运算符),即使使用数据验证器也是如此- Flutter

ryoqjall  于 2023-04-22  发布在  Flutter
关注(0)|答案(1)|浏览(135)

我正在使用Jikan API。这里我有一个FutureBuilder,它显示一些数据:

FutureBuilder<am.AnimeModel>(
                        future: getAnimeById(widget.malId),
                        builder: (context, snapshot) {
                          if (snapshot.hasData) {
                            var data = snapshot.data!.data!; // <--- HERE ERROR
                            print(data.malId);

                            return AnimeDataCardWidget(
                              malId: data.malId,
                              pic: data.images!.jpg!.largeImageUrl,
                              title: data.title,
                              totalEpisode: data.episodes,
                              studios: data.studios![0].name != null
                                  ? data.studios![0].name
                                  : '--',
                              originalManga: data.source,
                              frenchVersion: data.titles,
                              creationDate: data.airing,
                              futureData: getFavAnimesId(),
                              score: data.score,
                            );
                          } else {
                            return const Center(
                              child: CustomLoadingAnimation(),
                            );
                          }
                        }),

当用户点击listTile时,应用程序会打开一个详细页面,该页面会显示一张卡片(参见上面的代码)。它工作得很好,但不适用于没有**'studio'**数据的动画。
正如你所看到的,我检查了if (snapshot.hasData),但在那之后,它一直告诉我data是null。
有办法解决吗?

ki0zmccv

ki0zmccv1#

好了,为了解决这个错误,我修改了行:

studios: data.studios![0].name != null
                                  ? data.studios![0].name
                                  : '--',

对此:

studios: data.studios?.isNotEmpty == true
                                      ? data.studios![0].name ?? '--'
                                      : '--',

相关问题