gpt4 book ai didi

flutter - NoSuchMethodError : invalid member on null (Flutter Web)

转载 作者:行者123 更新时间:2023-12-04 12:35:41 30 4
gpt4 key购买 nike

我正在制作一个卡片列表,它从 Firestore 数据库中为 Flutter Web 应用程序获取数据,但是抛出了这个错误:

 - "The following JSNoSuchMethodError was thrown building
UserList(dirty, dependencies: [InheritedProvider<List<ClientUser>>],
state: _UserListState#ab779): NoSuchMethodError: invalid member on
null: 'length'"

这是我用来构建列表的代码:

class _UserListState extends State<UserList> {
@override
Widget build(BuildContext context) {
final users = Provider.of<List<ClientUser>>(context);

return ListView.builder(
itemBuilder: (context, index) {
return UserTile(user: users[index]);
},
itemCount: users.length,
);
}

在我的数据库服务文件中,以下是我从数据库中获取快照并从快照中获取列表的方法:

List<ClientUser> _clientListFromSnapshot(QuerySnapshot snapshot) {
return snapshot.documents.map((doc) {
return ClientUser(
name: doc.data['name'] ?? '', difficulty: doc.data['difficulty'] ?? 5);
}).toList();
}

// get users stream
Stream<List<ClientUser>> get users {
return userCollection.snapshots().map(_clientListFromSnapshot);
}


这是我声明 StreamProvider 的方式:

return StreamProvider<List<ClientUser>>.value(
value: UserDatabaseService().users,

我哪里错了??

最佳答案

正如之前在评论中提到的,检查空 List 的值可能会导致错误。一个简单的空检查器应该可以解决这个问题。

final users = Provider.of<List<ClientUser>>(context);
if (users != null && users.length > 0){
return ListView.builder(
itemBuilder: (context, index) {
return UserTile(user: users[index]);
},
itemCount: users.length,
);
}
else {
// Display loading widget

}

关于flutter - NoSuchMethodError : invalid member on null (Flutter Web),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62014068/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com