dart 如何在新版本的flutter程序中正确更新实体属性?

jaql4c8m  于 2023-01-22  发布在  Flutter
关注(0)|答案(1)|浏览(102)

我是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有没有专业的方法来做到这一点?
我期望开发新的功能,并升级我的程序的新版本,没有错误。

fzwojiic

fzwojiic1#

您所指的是迁移。当您从3个参数迁移到4个参数时,旧代码将不再兼容。因此,您可以:

  • 将缺少的参数添加到后端对象的所有旧示例中
  • 通过添加如下内容,在您的前端将其考虑在内:

name: data['name'] ?? 'John Doe';
这样,如果参数丢失,代码就不会抛出错误,这叫做null感知运算符,如果左边的值是null,右边的值就是要赋值的值。
您还可以使用其他这样的技巧,如:
age: data['age'] is int ? data['age'] : 0;

相关问题