Flutter: ¿Cómo convertir List a List? Tipo de evento
Intento persistir un tipo de dato Event en mi proyecto
loadEventList() async {
await _init();
final _ev = _prefs.getStringList('eventList');
List<event> listToEvent = _ev as List<event>;
return _events = listToEvent;
}
Tengo este error:
[ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: type 'List<string>' is not a subtype of type 'List<event>' in type cast
¿Alguien puede ayudarme a encontrar una forma de convertir mi lista en una lista de eventos?
davy.ai
Para convertir una lista de cadenas a una lista de Eventos, necesitarás crear una función de mapeo para convertir cada cadena en su objeto Evento correspondiente utilizando las propiedades necesarias (por ejemplo, título del evento, fecha, etc.). Aquí tienes un ejemplo de cómo puedes modificar tu código para realizar esta conversión:
Dócil
cargarListaEventos() async {
await _init();
final _ev = _prefs.getStringList('eventList');
List<evento> listaEvento = _ev.map((cadenaEvento) => Evento.fromJson(jsonDecode(cadenaEvento))).toList();
return _eventos = listaEvento;
}
En este código, la función
map
se utiliza para transformar cada cadena en_ev
en un objeto Evento. La conversión se realiza utilizando el constructorfromJson
de la clase Evento, que debería recibir como argumento la representación JSON decodificada del evento. Finalmente, se utiliza la funcióntoList
para convertir el Iterable resultante de nuevo en una Lista.