我正在尝试填充从Web API检索的数据:
void asyncInitState() async {
BulletinController bulletinController = BulletinController() ;
var value = await bulletinController.AfficherEtablissement();
value.forEach((entry) {
print(entry['id']);
});
}
@override
void initState() {
super.initState();
asyncInitState();
super.initState();
}
这是“ AfficherEtablissement()”方法:
Future<dynamic> AfficherEtablissement() async {
final response =
await http.get('https://jsonplaceholder.typicode.com/albums/1');
if (response.statusCode == 200) {
var parsedJson = json.decode(response.body);
//decode
print(parsedJson);
Map<String, dynamic> data = json.decode(response.body);
return data ;
} else {
throw Exception('Failed to load');
}
}
我遇到此错误:
type '(dynamic) => Null' is not a subtype of type '(String, dynamic) => void' of 'f'
一行以下:
print(entry['id']);
答案 0 :(得分:0)
AfficherEtablissement 函数返回一个 Map 对象,因此对于响应的迭代,应使用:
value.forEach((key, value) {
// do something
});
请注意,传递给forEach的函数带有两个参数(键,值)。
答案 1 :(得分:0)
AfficherEtablissement函数返回Map
void asyncInitState() async {
BulletinController bulletinController = BulletinController() ;
Map<String, dynamic> value = await bulletinController.AfficherEtablissement();
value.forEach((String key, dynamic entry) {
print(entry['id']);
});
}