【发布时间】:2020-01-25 00:46:33
【问题描述】:
我需要从 API 获取数据 当我得到需要遍历它们的数据时
问题是这个 API 的结构是这样的:
{
"events": [
{
"image_url": "sun.jpg",
"name_ar": "sun",
"name_en": "sun"
},
{
"image_url": "sun.jpg",
"name_ar": "sun",
"name_en": "sun"
},
......
]
}
地图内的地图列表
这是我的代码 forEach 只给我一个键和一个值 钥匙对我没用..我只剩下价值 我需要某种索引
class Events with ChangeNotifier{
List<Event> _eventsList = [];
List<Event> get eventsList {
return [..._eventsList];
}
Future<void> fetchEvents(http.Client client) async {
try {
//fetch api
final response = await client.get(globals.apiUrl + '/events/');
// json.decode
final extractedData = json.decode(response.body) as Map<String, dynamic>;
final List<Event> loadedEvents = [];
//store events into a List<Event>
extractedData.forEach((key,eventData) {
print(key);//evnts
print(eventData);//this gives the list of maps
loadedEvents.add(Event(
name_en: eventData[0]['name_en'],
name_ar: eventData[0]['name_ar'],
image_url: eventData[0]['image_url'],
));
});
_eventsList = loadedEvents;
//for the provider
notifyListeners();
} catch (error) {
throw (error);
}
}
}
//Event class
class Event with ChangeNotifier {
final String image_url;
final String name_ar;
final String name_en;
Event({this.image_url, this.name_ar, this.name_en});
}
当然,这只会导致第一个事件项
【问题讨论】:
标签: flutter data-structures dart