未定义的名称“ contact”-状态小部件中的Flutter toJson Map

时间:2020-10-21 20:47:22

标签: firebase flutter google-cloud-firestore

我已经创建了一个地图,但是在访问有状态窗口小部件中的变量“ 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());

错误=未定义姓名“联系人”。

1 个答案:

答案 0 :(得分:2)

由于contact是在扩展静态小部件NewContact的类中定义的,并且您要访问其对应的状态类NewContactState,因此应像这样{{1} }。