【发布时间】:2021-06-11 12:49:45
【问题描述】:
我正在学习开发,我知道某处有一个简单的错误,但我已经被冻结了几个小时。
我的模特
class MonthModel {
String name;
List day = [];
List facture = [];
MonthModel({this.name});
MonthModel.fromJson(Map<dynamic, dynamic> map)
: name = map['payments'] ?? '';
}
my repository:
class RealtimeRepository{
//const RealtimeRepository();
Future<List<MonthModel>> getMonth() async {
DatabaseReference databaseReference =
FirebaseDatabase.instance.reference().child("payments");
var monthSnapshot = await databaseReference.once();
List<MonthModel> month = [];
print(month);
monthSnapshot.value.entries.forEach((e) {
print(e);
MonthModel data = MonthModel.fromJson(e.value);
month.add(data);
});
print(month.length);
return month;
}
我的建造者:
class BuildView1 extends StatelessWidget {
var lists = RealtimeRepository().getMonth();
//print(lists);
@override
Widget build(BuildContext context) {
return ListView.builder(
itemCount: 10,
itemBuilder: (BuildContext context, int index) {
return ListTile(title: Text(lists[]); <--------------PROBLEM
},
);
}
}
我得到'Future的实例而不是List
为什么?
【问题讨论】:
-
因为列表不是列表而是 Future
- 并且必须先完成才能显示它。看看FutureBuilder
-
而您在
[]中缺少index。