存在称为类别的实体,并且存在扩展该类别的称为类别模型的模型,现在类别实体具有称为产品的变量,该变量是产品的列表,并且产品是实体并且具有扩展该实体的称为产品模型的模型。
the problem in vscode
第一个月
import 'package:flutter/foundation.dart' hide Category;
import 'package:saleor_app_flutter/features/storefront/data/models/product_model.dart';
import '../../domain/entities/category.dart';
class CatergoryModel extends Category {
String id;
String name;
String? desciption;
String? backgroundImage;
List<ProductModel> products; // Here is the error !!
CatergoryModel({
required this.id,
required this.name,
this.desciption,
this.backgroundImage,
required this.products,
}) : super(
id: id,
name: name,
products: products,
backgroundImage: backgroundImage,
desciption: desciption);
CatergoryModel copyWith({
String? id,
String? name,
String? desciption,
String? backgroundImage,
List<ProductModel>? products,
}) {
return CatergoryModel(
id: id ?? this.id,
name: name ?? this.name,
desciption: desciption ?? this.desciption,
backgroundImage: backgroundImage ?? this.backgroundImage,
products: products ?? this.products,
);
}
@override
bool operator ==(covariant CatergoryModel other) {
if (identical(this, other)) return true;
return other.id == id &&
other.name == name &&
other.desciption == desciption &&
other.backgroundImage == backgroundImage &&
listEquals(other.products, products);
}
@override
int get hashCode {
return id.hashCode ^
name.hashCode ^
desciption.hashCode ^
backgroundImage.hashCode ^
products.hashCode;
}
}
}
category.dart
class Category {
String id;
String name;
String? desciption;
String? backgroundImage;
List<Product> products;
Category({
required this.id,
required this.name,
this.desciption,
this.backgroundImage,
required this.products,
});
@override
bool operator ==(covariant Category other) {
if (identical(this, other)) return true;
return other.id == id &&
other.name == name &&
other.desciption == desciption &&
other.backgroundImage == backgroundImage &&
listEquals(other.products, products);
}
@override
int get hashCode {
return id.hashCode ^
name.hashCode ^
desciption.hashCode ^
backgroundImage.hashCode ^
products.hashCode;
}
}
product.dart
class Product {
String id;
String name;
String description;
String thumbnail;
String currency;
String amount;
List<String> media;
Product({
required this.id,
required this.name,
required this.description,
required this.thumbnail,
required this.currency,
required this.amount,
required this.media,
});
@override
bool operator ==(covariant Product other) {
if (identical(this, other)) return true;
return
other.id == id &&
other.name == name &&
other.description == description &&
other.thumbnail == thumbnail &&
other.currency == currency &&
other.amount == amount &&
listEquals(other.media, media);
}
@override
int get hashCode {
return id.hashCode ^
name.hashCode ^
description.hashCode ^
thumbnail.hashCode ^
currency.hashCode ^
amount.hashCode ^
media.hashCode;
}
}
product_model.dart
class ProductModel extends Product {
String id;
String name;
String description;
String thumbnail;
String currency;
String amount;
List<String> media;
ProductModel(
{required this.id,
required this.name,
required this.description,
required this.thumbnail,
required this.currency,
required this.amount,
required this.media})
: super(
id: id,
name: name,
description: description,
thumbnail: thumbnail,
currency: currency,
amount: amount,
media: media,
);
@override
bool operator ==(covariant ProductModel other) {
if (identical(this, other)) return true;
return other.id == id &&
other.name == name &&
other.description == description &&
other.thumbnail == thumbnail &&
other.currency == currency &&
other.amount == amount &&
listEquals(other.media, media);
}
@override
int get hashCode {
return id.hashCode ^
name.hashCode ^
description.hashCode ^
thumbnail.hashCode ^
currency.hashCode ^
amount.hashCode ^
media.hashCode;
}
}
我想要的是使用CategoryModel中的ProductModel列表,而不是Product实体。
PS:每个实体的模型都包含toJson
、toEntity
、fromJson
、fromEntity
等方法
1条答案
按热度按时间xdyibdwo1#
List<ProductModel> products;
已经来自正在扩展的超类(Category
)。你能做到
你可以用