obtengo la siguiente excepción:
VERBOSE-2:ui_dart_state.cc(198)] Unhandled Exception: type 'List<dynamic>' is not a subtype of type 'Map<String, dynamic>'
#0 Api.requestPosting (package:listar_flutter_pro/api/api.dart:176:31) <asynchronous suspension>
#1 HomeCubit.onLoad (package:listar_flutter_pro/blocs/home/home_cubit.dart:18:9)
<asynchronous suspension>
Tengo entendido que mi devolución envía la Lista de regreso, pero mi función .map() para revisar cada elemento necesita un Map
Agradezco cada respuesta. Gracias.
Actualizar:
Para comprender mejor mi problema, tengo que actualizar mi descripción inicial. Este código a continuación funciona solo para 1 Publicaciones de mi resultado de API de descanso de WordPress. Necesito extenderlo para todos, ese es el punto donde necesito ayuda.
api.dardo
static Future<PostModel> requestPosting() async {
final result = await httpManager.get(url: posting);
return PostModel.fromJson(result[0]);
}
Como puedes ver resultado[0] recoja el primer elemento, seguro que puedo cambiarlo, luego obtengo otra publicación, pero necesito todo y no estoy seguro de si un ciclo para iterar a través de todo es la forma elegante de manejar con el archivo wp rest api json.
codo.dardo
final response2 =
await Api.requestPosting();
final posting = List.from(response.data ?? []).map((item) {
return PostModel.fromJson(item);
}).toList();
Aquí necesito una lista de instancias de PostModel para insertarla en mi Widget ListTitle.
modelo.dardo
factory PostModel.fromJson(Map<String, dynamic> json) {
return PostModel(
date: json["date"] != null ? DateTime.parse(json["date"]) : null,
id: json['id'] ?? false,
title: json['title']['rendered'] ?? false,
content: json['content']['rendered'],
data: [json]
);
}
Y aquí estoy configurando el PostingModel. No estoy seguro si el problema también estará aquí para obtener todas mis publicaciones.
Mi solicitud json tiene el formato de este enlace, por lo que la respuesta normal de json wp rest api: https://jsonplaceholder.typicode.com/posts
.