Flutter:如何使用Model将类型Map分配给变量


class User {
final String? name;
final int? age;
final Map? userAuuth;
User({this.name, this.age, this.userAuuth});
Map<String, dynamic> toMap() {
return {'name': name, 'age': age, 'userAuuth': userAuuth};
}
User.fromJson(Map<String, dynamic> json)
: name = json['name'],
age = json[22],
userAuuth = json['userAuuth'];
Map<String, dynamic> toJson() => {
'name': name,
'age': age,
'userAuuth': userAuuth,
};
}
class ModelTest {
Map<String, dynamic> a;
aa() {
var a = User().toMap();
userAuth();
}
}

我的用户值为'name': 'aaa''age': 23'userAuuth': {'aa': 'bb"}。并且,我试图将这个值插入到class ModelTest中的Map<String, dynamic> a中。

我试过很多东西,也读到toMap(({}函数可以做到这一点。但是,我不知道如何将这种方法应用于a。如何使用模型将Map类型分配给变量?

这是您的请求的一个解决方案。您可以发现的问题是,当您创建用户时,您的映射可能为null,如果是这种情况,则无法在映射中添加任何字段。如果你想在映射中始终有一个值,我建议你在没有将映射传递给至少一个新的空映射实例的情况下签入构造函数,这样你就可以在插入任何值后插入,但我不确定你正在寻找的解决方案,所以我遵循了你的类,认为它可能是空映射。

class User {
final String? name;
final int? age;
final Map? userAuuth;
User({this.name, this.age, this.userAuuth});
User copyWith({
String? name,
int? age,
Map? userAuuth,
}) =>
User(
age: age ?? this.age,
name: name ?? this.name,
userAuuth: userAuuth ?? this.userAuuth,
);
Map<String, dynamic> toMap() {
return {'name': name, 'age': age, 'userAuuth': userAuuth};
}
User.fromJson(Map<String, dynamic> json)
: name = json['name'],
age = json[22],
userAuuth = json['userAuuth'];
Map<String, dynamic> toJson() => {
'name': name,
'age': age,
'userAuuth': userAuuth,
};
}
void main() {
var a = User();
a = a.copyWith(userAuuth: <String, dynamic>{'aa': 'bb'});
a.userAuuth!['bb'] = 'aa';

print(a.userAuuth);
}

相关内容

最新更新