Flutter - 'List<dynamic>' 不是类型的子类型
Posted
技术标签:
【中文标题】Flutter - \'List<dynamic>\' 不是类型的子类型【英文标题】:Flutter - 'List<dynamic>' is not a subtype of typeFlutter - 'List<dynamic>' 不是类型的子类型 【发布时间】:2021-10-17 16:30:01 【问题描述】:我一直在寻找一个 WordPress + Flutter App 集成并找到了一个不错的,但我收到了以下错误消息:
我很高兴这是一个简单的错误,但我更喜欢设计人员而不是开发人员,所以如果你们中的一些人能给我一些提示,那就太好了。提前致谢!
import 'dart:convert';
import 'package:http/http.dart' as http;
import '../config.dart';
import '../model/post_entity.dart';
class WpApi
static const String BASE_URL = URL + REST_URL_PREFIX + '/wp/v2/';
static Future<List<PostEntity>> getPostsList(
int category = 0, int page = 1) async
var posts = [];
try
String extra = category != 0 ? '&categories=' + '$category' : '';
dynamic response = await http.get(Uri.parse(BASE_URL +
'''
posts?_embed&page=$page''' +
extra));
dynamic json = jsonDecode(response.body);
(json as List).forEach((v)
posts.add(PostEntity.fromJson(v));
);
catch (e)
//TODO Handle No Internet Response
return posts;
static Future<List<PostCategory>> getCategoriesList(int page = 1) async
List<PostCategory> categories = [];
try
dynamic response = await http.get(Uri.parse(BASE_URL +
'categories?orderby=count&order=desc&per_page=15&page=$page'));
dynamic json = jsonDecode(response.body);
(json as List).forEach((v)
categories.add(PostCategory.fromJson(v));
);
catch (e)
//TODO Handle No Internet Response
return categories;
错误在于返回posts;
Exception has occurred.
_TypeError (type 'List<dynamic>' is not a subtype of type 'FutureOr<List<PostEntity>>')
【问题讨论】:
【参考方案1】:将var posts = []
更改为List<PostEntity> posts = []
static Future<List<PostEntity>> getPostsList(
int category = 0, int page = 1) async
List<PostEntity> posts = []; //<-- change var posts = [] to List<PostEntity> posts = []
try ...
【讨论】:
嘿,@Mehdi,谢谢!现在我得到了类别列表,但仍然没有得到帖子。你能发现我的代码有什么问题吗?以上是关于Flutter - 'List<dynamic>' 不是类型的子类型的主要内容,如果未能解决你的问题,请参考以下文章
Flutter-Firestore “参数类型 'Map<String, dynamic> Function()' 不能分配给参数类型 'Map<String, dynamic>
Flutter 转换 List<List<dynamic>>
Flutter 参数类型 'List<dynamic>' 不能分配给参数类型 'List<Widget>'
在 Flutter 中将 List<List<dynamic>> 转换为 ArrayList