#flutter #dart
Вопрос:
Ниже приведен код, в котором я застрял. Это вызывает исключение, и я не могу его решить.
import 'package:attendance_worklog/Events/eventSchedule.dart';
import 'package:attendance_worklog/login/loginModel.dart';
import 'package:http/http.dart' as http;
import 'eventScheduleModel.dart';
class EventScheduleService extends EventSchedule{
LoginModel? data;
EventScheduleService({required this.data}) : super(data: data);
var url = Uri.parse('http://10.0.2.2:5001/naf-vip-server/us-central1/api/meets/');
Future<List<EventScheduleModel>?> getSchedule() async{
try{
print("In Try");
final response = await http.get(url,headers: {'Authorization': 'Bearer ${data!.token}'});
if (response.statusCode == 200){
print("In If");
final List<EventScheduleModel> eventScheduleModel = eventScheduleModelFromJson(response.body) as List<EventScheduleModel>;
print(eventScheduleModel);
return eventScheduleModel;
}else{
print("0");
return <EventScheduleModel>[];
}
}catch (e){
print("0 excep");
print(e);
return <EventScheduleModel>[];
}
}
}
когда вызывается функция, выводится следующая:
I/flutter (18763): In Try
I/flutter (18763): In If
I/flutter (18763): 0 excep
I/flutter (18763): type 'List<dynamic>' is not a subtype of type 'Map<String, dynamic>'
это означает final List<EventScheduleModel> eventScheduleModel = eventScheduleModelFromJson(response.body) as List<EventScheduleModel>;
, что у вас возникли какие-то проблемы.
Выбрасывание исключения как type 'List<dynamic>' is not a subtype of type 'Map<String, dynamic>'
Пожалуйста, помогите, если кто-то знает решение.
Комментарии:
1. Привет Аян, можешь показать нам, каков ответ. как выглядит тело?
Ответ №1:
Используйте map
response.body
, потому response.body
что есть List
из Map<String, dynamic>
.
final List<EventScheduleModel> eventScheduleModel = (response.body as List)
.map((e) => eventScheduleModelFromJson(e))
.toList();