setState接受一个没有参数且不返回数据的voidCallback:
https://api.flutter.dev/flutter/widgets/State/setState.html
基本上:
setState(() {});基本上
()是回调的no参数,是回调
{ //...}内部的代码。就您在回调中的情况而言,您要添加方法的实现,sendToServer()而您不能这样做。
sendToServer()是实例方法,它应该在
sendMessage()或之外
setState:
void sendMessage() { var PhoneNumber; String Name; String Emailid; Email email; setState(() { Emailid = emailController.text; Name = nameController.text; PhoneNumber = numberController.text; String messageBody = '$Name n $PhoneNumber n $Emailid'; if (Name.isNotEmpty && Emailid.isNotEmpty && PhoneNumber.isNotEmpty) { email = Email( body: messageBody, subject: 'Email subject', recipients: ['onlineproductsking1@gmail.com'], ); send(email); } }); debugPrint('name -> $Name, number -> $PhoneNumber, emailid -> $Emailid'); } sendToServer() { if (_emailFormKey.currentState.validate()) { //No error in validator _emailFormKey.currentState.save(); Firestore.instance.runTransaction((Transaction transaction) async { CollectionReference reference = Firestore.instance.collection('contact'); await reference.add({ "Name": "$Name", "Phone Number": "$PhoneNumber", "Email Id": "$Emailid" }); }); } }关于其他错误,请在
pubspec.yaml文件中添加以下依赖项:
cloud_firestore: ^0.13.7



