首页 > 解决方案 > Flutter 错误:对空值使用空检查运算符

问题描述

我想在 Flutter 中开发银行应用程序。但是我得到了这个错误: Null check operator used on a null value 我试过“flutter channel stable”,但它不起作用,还试过'!' 运算符(如您在代码中所见),但它不起作用...... :(

请帮助我.. 注意:容器小部件很长,这就是我没有选择复制的原因..

  Widget projectWidget() {
        return FutureBuilder<List<Histories>>(
            future: dbHelper.getHistories(),
            builder: (context, snapshot) {
              if (snapshot.hasData && snapshot.data!.length > 0) return Container();
              return ListView.builder(
                itemCount: snapshot.data!.length,
                itemBuilder: (context, index) {
                  Histories histories = snapshot.data![index];
                  return Container();
                },
              );
            });
      }

标签: androidiosflutterdartnull

解决方案


在构建器内部 else 条件是错误的。使用当前代码,即使快照没有数据,它也会尝试调用snapshot.data!.length导致空错误的原因。

Widget projectWidget() {
        return FutureBuilder<List<Histories>>(
            future: dbHelper.getHistories(),
            builder: (context, snapshot) {
              if (snapshot.hasData && snapshot.data!.length > 0) 
              return ListView.builder(
                itemCount: snapshot.data!.length,
                itemBuilder: (context, index) {
                  Histories histories = snapshot.data![index];
                  return Container();
                },
              );

               else 
                return Center(child: CircularProgressIndicator());
            });
      }

推荐阅读