Flutter 颤振在课堂上改变单一值?

Flutter 颤振在课堂上改变单一值?,flutter,dart,Flutter,Dart,我仍在学习,并试图适应课堂等。。。我不确定这是否可能,但我有一个类,我传递到屏幕上。然后在那个屏幕上,我处理一个字段的数据,然后我想把相同的值传递到下一页,除了我处理的内容之外,其他内容都是相同的 例如,使用下面的类,我可以让page1也通过示例。。。然后在第一页,我阅读了列表1,并将列表编辑为其他内容。。。然后我想将示例传递到第2页,但是列表中现在有我处理过的数据,而不是原始数据 class Sample { final String field1; final String fiel

我仍在学习,并试图适应课堂等。。。我不确定这是否可能,但我有一个类,我传递到屏幕上。然后在那个屏幕上,我处理一个字段的数据,然后我想把相同的值传递到下一页,除了我处理的内容之外,其他内容都是相同的

例如,使用下面的类,我可以让page1也通过示例。。。然后在第一页,我阅读了列表1,并将列表编辑为其他内容。。。然后我想将示例传递到第2页,但是列表中现在有我处理过的数据,而不是原始数据

class Sample {
  final String field1;
  final String field2;
  final String field3;
  final String field4;
  final List List1;
  Sample({ this.field1, this.field2, this.field3, this.field4, this.List1 });
}
我目前正在通过widget.Sample.field1等传递每个未更改的字段来绕过它。。。但如果我添加了一个新字段,我需要记住在所有页面上设置它。如果我能像widget.Sample.replace(列表1,NewList)这样做,那就太好了


提前谢谢

你可以点击链接。

我想你要找的是
copyWith
模式。您可以创建结构的副本,并且只修改要更改的内容。手工编写非常简单,但也有一些包可以帮助您生成此代码


类样本{
最终字符串字段1;
最终字符串字段2;
最终字符串字段3;
最终字符串字段4;
最后名单清单1;
样品({
这是第1场,
这是第2条,
这是第3.3节,
这是第4条,
这是1.list1,
});
样品复印件({
字符串字段1,
字符串字段2,
字符串字段3,
字符串字段4,
清单1,
}) =>
样品(
字段1:字段1??此字段1,
字段2:字段2??此字段2,
字段3:字段3??此字段3,
字段4:字段4??此字段4,
list1:list1??this.list1,
);
}
最终样品=样品(
字段1:‘foo’,
字段2:'酒吧',
清单1:[‘猫’、‘狗’],
);
sample.field1;//'富
sample.field2;//'酒吧
sample.list1;///[‘猫’、‘狗’]
最终另一个样本=sample.copyWith(
字段3:“batz”,
列表1:[…sample.list1,'犰狳'],
);
sample.field1;//'富
sample.field2;//'酒吧
sample.field3;//'巴茨
sample.list1;///[‘猫’、‘狗’、‘犰狳’]
请记住,此实现非常简单,不会设置空值

代码生成器:


您可以通过删除final关键字来更新实例变量(
列表1
)。Dart支持隐式getter和setter。因此,通过使用setter,我们可以更新列表,而无需创建新对象并将所有其他/更新的属性复制到列表中

更新列表

setState(() {
   model.List1=["X","Y","Z"];
});

谢谢这个。。。然后如何调用旧示例,但只更改1个值?对“旧”实例调用
copyWith()
,将创建一个带有更改的新实例。我已经用示例用法更新了答案。如果你想问更多关于州管理的问题,这可能不是你想要的答案。