gpt4 book ai didi

flutter - Flutter对象应对和更新问题

转载 作者:行者123 更新时间:2023-12-03 03:56:21 25 4
gpt4 key购买 nike

我有模特

class Address {
String firstName;
String lastName;
//1 for shipping and 2 for billing address
int addressType=1;
String middleName;
String company;
String email;
String phone;
String country;
String city;
String state;
String zip;
String address;

Address({this.firstName,this.addressType, this.lastName, this.middleName, this.company, this.email, this.phone, this.country, this.city, this.state, this.zip, this.address});

Address.fromJson(Map<dynamic, dynamic> json) {
firstName = json['firstName'];
lastName = json['lastName'];
middleName = json['middleName'];
company = json['company'];
email = json['email'];
phone = json['phone'];
country = json['country'];
addressType=json['addressType'];
city = json['city'];
state = json['state'];
zip = json['zip'];
address = json['address'];
}

Map<dynamic, dynamic> toJson() {
final Map<dynamic, dynamic> data = new Map<dynamic, dynamic>();
data['firstName'] = this.firstName;
data['lastName'] = this.lastName;
data['addressType']=this.addressType;
data['middleName'] = this.middleName;
data['company'] = this.company;
data['email'] = this.email;
data['phone'] = this.phone;
data['country'] = this.country;
data['city'] = this.city;
data['state'] = this.state;
data['zip'] = this.zip;
data['address'] = this.address;
return data;
}
}

我创建了3个对象
地址obj1,obj2,obj3;
我在obj1和obj1.addressType = 1中添加了值;然后我像obj2 = obj1一样复制了两个obj2和obj3; obj2.addressType = 1;和obj3 = obj1;
然后我更新了obj1值obj1.addressType = 2;
但是,当我将此3对象添加到db时,它以新更新保存为obj1
这意味着所有对象的addressType为2为什么会这样?

最佳答案

在Flutter中,它不会创建新对象,它将引用内存中的相同对象,因此,如果要复制该对象,则可以按照以下方式进行。

将此添加到您的地址类别中。

 Address.clone(Address address)
: this(
addressType: address.addressType,
// add all properties like this here
);

如何使用。它。
a1.addressType = 1;
a2 = Address.clone(a1);
a2.addressType = 2;
print(a1.addressType); // it will print 1

关于flutter - Flutter对象应对和更新问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60990505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com