未为该类定义Getter。我在这里做错了什么?

时间:2019-08-08 12:35:44

标签: flutter dart getter

我正在跟踪一个使用Flutter构建我的第一个登录系统的教程。我偶然发现一个无法解决的吸气剂错误。

在重构代码以将auth部件移入其自己的文件之前,一切工作正常。

这是有问题的代码:

abstract class BaseAuth {
  Future<String> signInWithEmailAndPassword(String email, String password);
}

class Auth implements BaseAuth {
  Future<String> signInWithEmailAndPassword(String email, String password) async {
     FirebaseUser user = (await
      FirebaseAuth.instance.signInWithEmailAndPassword(
        email: email,
        password: password
      )).user;
    return user.uid;
  }
}

这是我尝试使用它的方式:

class LoginPage extends StatefulWidget {
  LoginPage({this.auth});
  final BaseAuth auth;

  @override
  State<StatefulWidget> createState() => _LoginPageState();
}

enum FormType {
  login,
  register
}

...

class _LoginPageState extends State<StatefulWidget> {
  final formKey = GlobalKey<FormState>();

  String _email;
  String _password;
  FormType _formType = FormType.login;

  void validateAndSubmit() async {
    if (validateAndSave()) {
      try {
        if (_formType == FormType.login) {
          String userID = await widget.auth.singInWithEmailAndPassword(_email,_password);
          print('Signed in as $userID');
        } ...
      } catch(e) {
        print('Error: $e');
      }
    }
  }
...
}

这是我收到的错误消息: “未为类StatefulWidget定义getter'auth'。”

该代码在本教程中正常工作。

我一直在寻找代码库之间的差异,但对我而言似乎没有什么不合适。也许有人可以帮助改进者?

1 个答案:

答案 0 :(得分:0)

class _LoginPageState extends State<StatefulWidget> {

应该是

class _LoginPageState extends State<LoginPage> {