参数类型“List<dynamic>?” 无法分配给参数类型“List<dynamic>”

cle*_*tez 3 dart flutter flutter-futurebuilder null-safety

目前,我正在更新 Flutter 项目的代码库,该项目是在以前的版本上开发的。当我们更新到最新版本的 Dart 和 Flutter 后,就会出现该错误。

这里的代码与我们何时从FutureBuilder.

          body: new FutureBuilder<List>(
            future: getData(),
            builder: (context, snapshot) {
              if (snapshot.hasError) print(snapshot.error);

              return snapshot.hasData
                  ? new ItemList(
                      list: snapshot.data, <--- error in here
                    )
                  : new Center(
                      child: new CircularProgressIndicator(),
                    );
            },
          ),
Run Code Online (Sandbox Code Playgroud)

颤动版本:2.2.2

飞镖版本:2.13.3

请帮我指出我应该为此关注哪一部分。谢谢你!

Tip*_*tan 9

你的snapshot.data可以为空,但该类ItemListlist接受任何null值。这就是您收到此错误的原因。

\n

如果您可以确保snapshot.data始终为非空值,那么您应该使用它snapshot.data!来避免此错误。但如果有任何机会可以为snapshot.data空,那么snapshot.data!会给你另一个例外。在这种情况下你应该使用

\n
ItemList(\n           list: snapshot.data??[],\n         )\n
Run Code Online (Sandbox Code Playgroud)\n