Visual Studio代码版本:1.52.0 Node.js:12.14.1
下面是Flutter中的代码片段。问题出在.length代码片段中,我认为它不应该显示任何错误,因为通过if,它已经保证异步请求已经完成,并且snapshop有一些数据。
我认为这更多的是编辑的问题,而不是Fluter语言。
body: FutureBuilder<List<Post>>(
future: postServiceData,
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done && snapshot.hasData){ //See it
return ListView.builder(
itemCount: snapshot.data.length, // Error on this line because .length
itemBuilder: (context, index) {
final post = snapshot.data![index];
return Padding(
padding: const EdgeInsets.all(8.0),
child: ListTile(
title: Text(post.title.toUpperCase()),
subtitle: Text(post.body),
onTap: () {
// Faça algo quando o item da lista for clicado
},
),
);
});
} else {
return Center(child: CircularProgressIndicator());
}
},
),
字符串
为了解决这个问题,我不得不将错误代码段替换为以下代码段:
itemCount: snapshot.data!.length,
型
我上面已经提到了。
2条答案
按热度按时间nukf8bse1#
通过执行以下操作替换生成器:
字符串
xxhby3vn2#
未来的我弄清楚了是什么导致了这个问题,它实际上没有一个定义什么是快照。好吧,他们可以使快照不需要被定义。
在这种情况下,正确的方法是:
字符串