类‘List’无未命名构造函数:Flutter模型编写报错求助
解决Flutter模型中“类‘List’无未命名构造函数”报错
你遇到的报错是因为Dart新版本已废弃List<CardResults>()这种无参数构造List的写法,以下是两种修复方案:
方案一:使用可增长的空列表构造
将results = List<CardResults>();替换为:
results = List<CardResults>.empty(growable: true);
默认List.empty()创建的列表不可添加元素,加上growable: true才能正常调用add方法。
方案二:用map直接转换(更简洁)
跳过手动循环,直接通过map将JSON数组转换为CardResults列表:
results = (json['cardResults'] as List).map((v) => CardResults.fromJson(v)).toList();
如果需要处理json['cardResults']为null的情况,可以优化为:
results = (json['cardResults'] as List? ?? []).map((v) => CardResults.fromJson(v)).toList();
修复后的完整代码
import 'package:flutter/material.dart'; class CardModel { late List<CardResults> results; CardModel({required this.results}); CardModel.fromJson(Map<String, dynamic> json) { // 方案一实现 if (json['cardResults'] != null) { results = List<CardResults>.empty(growable: true); json['cardResults'].forEach((v) { results.add(CardResults.fromJson(v)); }); } // 或者替换为方案二(二选一即可) // results = (json['cardResults'] as List? ?? []).map((v) => CardResults.fromJson(v)).toList(); } }
内容的提问来源于stack exchange,提问作者SEYRAM EMMANUEL AGBANYO
相关产品推荐
相关产品推荐

