如何在flutter中从ListView.builder()中的REST API中获取数据?

hpcdzsge  于 2023-05-23  发布在  Flutter
关注(0)|答案(1)|浏览(194)

我是Flutter的新手,尝试从REST API获取数据,但得到错误_CastError (Null check operator used on a null value).

List<User>? user;
child: ListView.builder(
          itemCount: user?.length,
          itemBuilder: ((context, index) {
            return Container(
              padding: EdgeInsets.all(16.0),
              child: Column(
                children: [Text(user![index].firstName)],
              ),
            );
          }),
        ),

这里我对一个变量null执行操作。我定义了itemCount: user?.lengthText(user![index].firstName)来处理这个问题,但是我得到了这样的错误

如何解决这个问题?

vyu0f0g1

vyu0f0g11#

itemCount: user?.length

操作?.表示如果user为null,它将返回length或null,如果itemCount为null,它将构建无穷大,直到itemBuilder也返回null。

user![index].firstName

这意味着你确定user不为null,这样做索引将返回一个非null值。这是一个矛盾,因为你不确定它在cunter中是否为null,但你确定它不在builder中:

ListView.builder(
  itemCount: user?.length ?? 0, ///This tells the builder there are no items in case the user is null, so itemBuilder will not iterate
  itemBuilder: (context, index) {
    ....
  },
);

现在它不会报告错误,但它将为空,直到您将用户变量修复为非空。

相关问题