【问题标题】:Flutter _TypeError (type 'List<dynamic>' is not a subtype of type 'List<TeamID>')Flutter _TypeError(类型 \'List<dynamic>\' 不是类型 \'List<TeamID>\' 的子类型)
【发布时间】:2023-01-22 19:55:44
【问题描述】:

我从列表中调用数据并存储在列表中,我定义的是模型列表。但它仍然显示错误,它是 List

我的代码

class TeamsController with ChangeNotifier {
  List<TeamID> teamslist = [];

  TeamsController() {
    getMyTeams();
  }

  getMyTeams() async {
    var response = await ApiService().getMyCreatedTeams();
    if (response != null) {
      final databody = json.decode(response);
      debugPrint(databody['data'].toString());
      teamslist =
          databody['data'].map((item) => TeamID.fromJson(item)).toList();

      notifyListeners();
    }
  }
}

它在团队列表中显示错误 _TypeError(类型“List”不是类型“List”的子类型)

如果我首先像这样存储在列表中,它就会工作

final List list = databody['data'];
  teamslist = list.map((item) => TeamID.fromJson(item)).toList();

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    您可以像这样将主列表分配为 List&lt;dynamic&gt;:

    class TeamsController with ChangeNotifier {
      List<dynamic> teamslist = [];
    
      TeamsController() {
        getMyTeams();
      }
    
      getMyTeams() async {
        var response = await ApiService().getMyCreatedTeams();
        if (response != null) {
          final databody = json.decode(response);
          debugPrint(databody['data'].toString());
          teamslist =
              databody['data'].map((item) => TeamID.fromJson(item)).toList();
    
          notifyListeners();
        }
      }
    }
    

    那会起作用,但是如果您想知道类型,那么您可以先检查类型,然后将类型分配给它。你可以这样输入:

    print(databody['data'].map((item) => TeamID.fromJson(item)).toList().runtimeType);
    

    之后,您可以将 teamslist 分配给该类型。

    【讨论】:

      猜你喜欢
      • 2019-08-18
      • 2019-09-02
      • 1970-01-01
      • 2021-09-12
      • 2021-02-25
      • 2020-06-21
      • 2020-05-30
      • 2021-01-02
      • 2020-01-18
      相关资源
      最近更新 更多