未处理的异常Future动态不是FutureOr List Books类型的子类型

时间:2020-01-25 09:00:09

标签: asynchronous flutter dart

如何将Future<dynamic>的数据传递到Future<List<dynamic>>

getall(BuildContext context, String url, String type) async {
  final response = await http.get(url, headers: { 
 'Accept': 'application/json' 'Authorization': 'Bearer $token'
  });
if (response.statusCode == 200) {
  switch(type){
  case "Chapters":
            List responseJson = json.decode(response.body)['data'];
            return responseJson.map((m) => new Subjects.fromJson(m)).toList();
            break;
   case "Subjects":
            List responseJson = json.decode(response.body)['data'];
            return responseJson.map((m) => new Chapters.fromJson(m)).toList();
            break; 
 } 
}
}

这是我要从getall获取数据的功能:

Future<List<Subjects>> getsubjects(BuildContext context, String url, String type) async {
  return getall(context, url, type);

Future<List<Chapters>> getchapters(BuildContext context, String url, String type) async {
  return getall(context, url, type);
}

1 个答案:

答案 0 :(得分:0)

指定getall函数的返回类型可以解决此问题。

Future<List<Subjects>> getall(BuildContext context, String url, String type) async {
  final response = await http.get(url, headers: {
    'Accept': 'application/json',
    'Authorization': 'Bearer $token'
  });


  if (response.statusCode == 200) {
    List responseJson = json.decode(response.body)['data'];
    return responseJson.map((m) => new Subjects.fromJson(m)).toList();
  }
}