我正在为使用Flutter的Dart制作的应用程序使用redux(仍在学习中)。首先,我将解释我的代码,以便您可以更好地理解。
我有这种卡型号:
class CardModel {
final List images;
final int id;
final AppType category;
final bool status;
final String title;
final String description;
final String location;
final List<String> tags;
// int userId;
CardModel(
{this.images,
@required this.id,
@required this.status,
@required this.category,
@required this.title,
@required this.description,
@required this.location,
@required this.tags});
CardModel copyWith({List images,
int id,
bool status,
AppType category,
String title,
String description,
String location,
List<String> tags}){
return CardModel(
id: id ?? this.id,
images: images ?? this.images,
status: status ?? this.status,
category: category ?? this.category,
title: title ?? this.title,
description: description ?? this.description,
location: location ?? this.location,
tags: tags ?? this.tags,
);
}
}
这是不可变的,因为我的AppState具有此类的实例。
我有以下操作:
class AddCard {
final CardModel card;
AddCard({this.card});
}
第二,我有一个上传页面,其中有2个自定义有状态小部件,一个用于类别和状态,另一个用于标题,描述,位置,标签等的文本字段。请参阅{{3} }。
所以我问自己,创建新卡的正确方法是什么?
我已经想到了这两种解决方案:
我正在尝试编写尽可能干净的代码,但无法弄清楚该怎么做...我的2个解决方案似乎很脏
SideQuestion:使用几种模式有意义吗,例如Redux用于可序列化数据,而scopeModel用于短期数据?