我得到一个错误:输入'List'
//getting the data from api call
Future<List<Donation>> _getDonationRecord() async {
var res = await CallApi().donationRecords();
var body = json.decode(res.body);
return body.map((p) => Donation.fromJson(p)).toList();
}
//Building the futurebuilder
FutureBuilder<List<Donation>>(
future: _getDonationRecord(),
builder: (context, snapshot) {
if (snapshot.hasData) {
List<Donation> data = snapshot.data;
return ListView.builder(
itemCount: data.length,
itemBuilder: (context, index) {
return ListTile(
leading: Icon(Icons.thumb_up,color: kPrimaryColor,) ,
title: Text(data[index].hospital,style: TextStyle(color: Colors.black),),
subtitle: Text(data[index].date,style: TextStyle(color: Colors.black),),
trailing: Text(data[index].donorDonatedLitre,style: TextStyle(color: Colors.black),),
);
});
} else if (snapshot.hasError) {
return Text("${snapshot.error}");
}
return Center(child: CircularProgressIndicator());
},
)
问题在于json。解码
返回动态
。因此,这种类型会传播到函数的末尾,这就是为什么会出现这种类型错误的原因。试着这样做:
Future<List<Donation>> _getDonationRecord() async {
var res = await CallApi().donationRecords();
var body = json.decode(res.body) as List<Object>;
return body.map((p) => Donation.fromJson(p)).toList();
}
甚至像这样:
var body = json.decode(res.body) as List<Map<String, Object>>;
由于许多原因,使用动态
类型很困难。一个尽可能避免的好主意。您可以将Dart分析设置为在类似情况下出现编译错误。您可以在这里阅读如何实现这一点。
我是Dart/Flutter的新手,我正在努力获得一个消耗网络服务的未来的结果: 在init状态下,我调用此函数,因此我可以使用此结果构建布局: 我总是得到这个例外: 你知道我做错了什么吗? 谢啦
我正在尝试从服务器获取json数据
我有一个问题与我的json.decode.我想从我的网站得到一些数据,但当我的网站说{数字: 5}我只得到这个错误(类型_InternalLinkedHashMap 但是,如果我的网站显示字符串{“Number”:5},我会得到正确的输出,并且错误格式为Exception:意外字符(在字符1处)。 这是我的颤振代码: 谢谢你的回答
我是新手。我正在开发一个测验应用程序,并拥有以下三个dart文件: 主要的飞奔 question.dart answer.dart 当我在android studio中的android上运行应用程序时,出现以下错误: ══╡ 小部件库捕获的异常╞═══════════════════════════════════════════ 生成MyApp时引发了以下类型的错误(脏,状态:_MyAppSta
在存储到本地数据库之前,将字符串转换为对象的正确方法是什么? 这是的输出: 我试图将其转换为CreatedBy对象 创造的 这里是我的本地表列 错误