Мне нужно извлекать данные из 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});
}
конечно, это приводит только к первому элементу события