首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >类型“List<dynamic>”不是类型“List<Map<dynamic,dynamic>>”的子类型

类型“List<dynamic>”不是类型“List<Map<dynamic,dynamic>>”的子类型
EN

Stack Overflow用户
提问于 2019-02-13 14:21:31
回答 1查看 279关注 0票数 0

在Dartlang/Flutter中,我试图使用.map().toList()创建一个地图列表,但得到了上面的错误消息。我尝试在不同的地方添加类型注释,但它们只是导致了类似但不同的类型错误。

这是响应正文。

代码语言:javascript
复制
 Response body: {"data":{"logsread":[{"id":"7a2dd3b","email":"email@gmail.com"}]}}

这是代码。

代码语言:javascript
复制
http.post(url, body: read2).then((response) {
  print("Response status: ${response.statusCode}");
  print("Response body: ${response.body}");
  var tempTodos;
  tempTodos = jsonDecode(response.body)['data']['logsread']
      .map((node) => {
            'id': 0,
            'title': node['email'],
            'score': 0,
          })
      .toList();

  return Upd(model.copyWith(todoList: tempTodos));

Model类的定义如下:

代码语言:javascript
复制
class Model {
  final String todo;
  final List<String> todos;
  final Map todoWithScore;
  final List<Map> todoList;

  Model(this.todo, this.todos, this.todoWithScore, this.todoList);

  Model copyWith({
    String todo,
    List<String> todos,
    Map todoWithScore,
    List<Map> todoList,
  }) =>
      Model(
        todo ?? this.todo,
        todos ?? this.todos,
        todoWithScore ?? this.todoWithScore,
        todoList ?? this.todoList,
      );
}
EN

回答 1

Stack Overflow用户

发布于 2019-02-13 14:30:16

添加“as List”后再试,如下所示。

代码语言:javascript
复制
tempTodos = (jsonDecode(response.body)['data']['logsread'] as List )
      .map((node) => {
            'id': 0,
            'title': node['email'],
            'score': 0,
          })
      .toList();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54663796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档