我已经创建了一个地图,但是在访问有状态窗口小部件中的变量“ contact”时遇到了困难。我不确定在哪里还可以声明final Contact contact;
。
联系人模型文件。
class Contact {
int rating;
String name;
String location;
int phoneNumber;
String instagram;
int birthday;
String notes;
Contact(this.name, this.phoneNumber, this.location, this.rating,
this.instagram, this.birthday, this.notes);
Map<String, dynamic> toJson() => {
'Name': name,
'PhoneNumber': phoneNumber,
'Location': location,
'Rating': rating,
'Instagram': instagram,
'Birthday': birthday,
'Notes': notes,
};
当前声明为final Contact contact;
的地方
class NewContact extends StatefulWidget {
NewContact({Key key, @required this.contact}) : super(key: key);
final Contact contact;
@override
NewContactState createState() => NewContactState();
}
class NewContactState<T extends NewContact> extends State<T> {
final db = FirebaseFirestore.instance; //...etc
正在调用地图的地方
await db
.collection("userData")
.doc(uid)
.collection("Contacts")
.add(contact.toJson());
错误=未定义姓名“联系人”。
答案 0 :(得分:2)
由于contact
是在扩展静态小部件NewContact
的类中定义的,并且您要访问其对应的状态类NewContactState
,因此应像这样{{1} }。