我是Flutter开发人员,我的问题是指生产中的程序实体的管理,该程序将接收更新。如果我有一个生产中的应用程序,其中包含5个字段的实体,如下所示:
class TurmaEntity {
final String id;
final String name;
final String imageURL;
final DateTime createdAt;
final List<String> listaGrupoComandoEnviado;
TurmaEntity({
required this.id,
required this.name,
required this.imageURL,
required this.createdAt,
required this.listaGrupoComandoEnviado,
});
如果我需要添加一个额外的字段(例如DateTime CreatedAt ...到改进版本中的程序中...然后去更新到Google Play ...会生成错误,因为它不兼容。
所以我的问题是:我怎样才能自由地为程序建立新的特性,并能够在实体中添加新的字段,而不产生错误?2有没有专业的方法来做到这一点?
我期望开发新的功能,并升级我的程序的新版本,没有错误。
1条答案
按热度按时间fzwojiic1#
您所指的是迁移。当您从3个参数迁移到4个参数时,旧代码将不再兼容。因此,您可以:
name: data['name'] ?? 'John Doe';
这样,如果参数丢失,代码就不会抛出错误,这叫做null感知运算符,如果左边的值是null,右边的值就是要赋值的值。
您还可以使用其他这样的技巧,如:
age: data['age'] is int ? data['age'] : 0;