不能将 'Rx<Future<List<SectionsDBStat>>*>*' 类型的值分配给类型的变量



我正在学习扑动和GetX。我有模型:

class SectionsDBStat {
int notificationsTotalCount;
int notificationsWaitingForProcessing;
DateTime notificationsLastArchiveDate;
SectionsDBStat({
required this.notificationsTotalCount,
required this.notificationsWaitingForProcessing,
required this.notificationsLastArchiveDate
});
factory SectionsDBStat.fromJson(Map<String, dynamic> json)  {
return SectionsDBStat(
notificationsTotalCount: json['notificationsTotalCount'],
notificationsWaitingForProcessing: json['notificationsWaitingForProcessing'],
notificationsLastArchiveDate: DateTime.parse(json['notificationsLastArchiveDate'])
);
}  
}

我正在尝试创建从http:

接收数据的Getx控制器
class SectionsStatController extends GetxController {

SectionsDBStat sectionsDBStat = Future.value(<SectionsDBStat>).obs;
getStat() async {
var value = await http.get('${url}/stat?total');
if(value.statusCode == 200) {
Map<String, dynamic> valueMap = jsonDecode(value.body)['data'];
sectionsDBStat = SectionsDBStat.fromJson(valueMap);
update();
} else {
print("Can't get stat: ${value.statusCode}");
}
}
}

我得到一个错误:

A value of type 'Rx<Future<List<SectionsDBStat>>*>*' can't be assigned to a variable of type 'SectionsDBStat'.

所以我应该用另一种类型。但是什么?我尝试final,但得到错误:

'sectionsDBStat' can't be used as a setter because it's final.

我不知道你为什么使用Future,这里你试图将Rx<Future<List<SectionsDBStat>>*>分配给sectionsDBStat,这是不可能的

替换这一行

SectionsDBStat sectionsDBStat = Future.value(<SectionsDBStat>).obs;

final sectionsDBStat = SectionsDBStat().obs;

然后像这样赋值

sectionsDBStat.value = SectionsDBStat.fromJson(valueMap);

最新更新