dart 如何修复List< String>不是字符串的子类型错误?

gopyfrb3  于 2023-07-31  发布在  其他
关注(0)|答案(1)|浏览(88)

如果在我的模型中我已经声明了我想为模型中的某些字段收集一个List,我如何继续得到错误List<String> is not a subtype of String
下面是我的数据模型的代码:

class DataModel{
  String ID;
  List<String> name;
  List<String> type;
  List<String> images;
  
  DataModel({
   required this.ID,
   required this.name,
   required this.type,
   required this.images,
  
   });

    factory DataModel.fromJson(Map<String, dynamic> json) {
    return DataModel(
      ID: json['ID'] ?? '' ,
      name: json['name'] ?? '' ,
      type: List<String>.from(json['type']??[]) ,
      images:  List<String>.from(json['images']??[]) , 
    );
  }
   Map<String, Object> toJsonAdd() => {
        "ID":ID,
        "name": name,
        "images": images,
        "type": type,
        
      };

}

字符串
现在,下面是我使用模型将数据传递给db的地方:

List<String> nameList =[];
  List<String> typeList =[];
  List<String> imageList =[];

 add(DataModel dataModel) async {
    await ref.read(dataProvider).addData(dataModel).then((success) {});
  }

 DataModel dataModel = dataModel(
         ID: '',
         name: nameList.toList(),
         mealTypes: filteredMealTypes.toList(),
              priceOfType: filteredPriceMealType.toList(),
            );
            add(menuModel);

x759pob2

x759pob21#

我认为你的database不能存储ListString或任何类型的List,这就是为什么它不断产生相同的错误。
尝试将list转换为String并将其存储在database中。
你可以使用类似dart:convert的东西,它有类似jsonEncode的方法,并将字符串列表传递给它,它会将其转换为字符串。
同样,在检索数据时,您可以再次使用jsonDecode将字符串列表转换为dart列表类型。

相关问题