NoSuchMethodError:null 上的无效成员:'toList'(Flutter Web)_MapStream<QuerySnapshot 引发了异常
Posted
技术标签:
【中文标题】NoSuchMethodError:null 上的无效成员:\'toList\'(Flutter Web)_MapStream<QuerySnapshot 引发了异常【英文标题】:NoSuchMethodError: invalid member on null: 'toList' (Flutter Web) An exception was throw by _MapStream<QuerySnapshotNoSuchMethodError:null 上的无效成员:'toList'(Flutter Web)_MapStream<QuerySnapshot 引发了异常 【发布时间】:2021-01-14 16:05:15 【问题描述】:错误: NoSuchMethodError:null 上的无效成员:'toList 来了,但是当我使用带注释的提供者时代码有效,即最终 userdetails = Provider.of(context).toList() ?? [];
但是,如果我使用
最终用户详细信息 = Provider.of(context).toList() ?? [];
我收到这两个错误,应用程序显示红屏。
1- NoSuchMethodError:null 上的无效成员:'toList
2- _MapStream
import 'package:traveltogether_admin/Admin_Screens/Admin_ManageUsers_Tile.dart';
import 'package:traveltogether_admin/Models/user.dart';
class ManageUsers extends StatelessWidget
static const id = 'Admin_manage_users';
@override
Widget build(BuildContext context)
final userdetails = Provider.of<List<MyUserData>>(context).toList() ?? [];
// final userdetails = Provider.of<List<RequestToJoinData>>(context).toList() ?? [];
final user= userdetails;
return ListView.builder(
// shrinkWrap: true,
// physics: NeverScrollableScrollPhysics(),
// primary: false,
itemCount: userdetails.length,
itemBuilder: (context,index)
print(userdetails);
return ManageUserTile(user[index]);
);
//MyUserData is the model class.
// Rest of the code.
List<MyUserData> _MyUserDataListfromSnapshot(QuerySnapshot snapshot)
return snapshot.documents.map((doc)
return MyUserData(
uid: uid ?? '',
fullname: doc.data['fullname'] ?? '',
CNIC: doc.data['CNIC'] ?? '',
studentID: doc.data['studentID'] ?? '',
department: doc.data['department'] ?? '',
phonenumber: doc.data['phonenumber'] ?? '',
vehicle: doc.data['vehicletype'] ?? '',
VehicleCC: doc.data['vehicleCC'] ?? '',
carModel: doc.data['carModel'] ?? '',
numberplate: doc.data['numberplate'] ?? '',
);
).toList();
Stream<List<MyUserData>> get myUserDataListStream
return myUserCollection.snapshots().map(_MyUserDataListfromSnapshot);
【问题讨论】:
您希望MyUserData
提供什么类型的数据?
请分享更多代码,很难解释导致问题的原因。
请立即查看。
显示提供者的代码。
根据我在 Firestore 和 Flutter 方面的经验回答了这个问题。希望这能解决你的问题:)
【参考方案1】:
你需要稍微改变你的方法。
final List<MyUserData> users = Provider.of<List<MyUserData>>(context);
在 ListviewBuilder 中执行 null 检查。
ListView.builder(
// shrinkWrap: true,
// physics: NeverScrollableScrollPhysics(),
// primary: false,
itemCount: userdetails?.length ?? 0,
itemBuilder: (context,index)
return ManageUserTile(users[index]);
);
【讨论】:
以上是关于NoSuchMethodError:null 上的无效成员:'toList'(Flutter Web)_MapStream<QuerySnapshot 引发了异常的主要内容,如果未能解决你的问题,请参考以下文章
NoSuchMethodError:null 上的无效成员:'toList'(Flutter Web)_MapStream<QuerySnapshot 引发了异常
Flutter:[cloud_firestore/unknown] NoSuchMethodError:null 上的无效成员:'includeMetadataChanges'(Flutter Web
NoSuchMethodError(NoSuchMethodError:方法'[]'在null上被调用。接收者:null尝试调用:[](“title”))
NoSuchMethodError (NoSuchMethodError: 方法 'map' 在 null 上被调用
例外:NoSuchMethodError:在 null 上调用了 getter 'uid'。接收方:null 尝试调用:uid
Flutter:NoSuchMethodError:方法 'fetchByID' 在 null 上被调用。接收方:null 尝试调用:fetchByID(2)