没有为该类定义 Getter。我在这里做错了啥?

Posted

技术标签:

【中文标题】没有为该类定义 Getter。我在这里做错了啥?【英文标题】:Getter isn't defined for the class. What am i doing wrong here?没有为该类定义 Getter。我在这里做错了什么? 【发布时间】:2019-08-08 12:35:44 【问题描述】:

我正在学习使用 Flutter 构建我的第一个登录系统的教程。我偶然发现了一个无法解决的 getter 错误。

在我重构代码以将身份验证部分移动到自己的文件中之前,一切正常。

这是有问题的代码:

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】:
class _LoginPageState extends State<StatefulWidget> 

应该是

class _LoginPageState extends State<LoginPage> 

【讨论】:

确实,这就是问题所在。我想我需要休息一下:)。感谢您的帮助!

以上是关于没有为该类定义 Getter。我在这里做错了啥?的主要内容,如果未能解决你的问题,请参考以下文章

mysql变量有问题,我在这里做错了啥?

Jumbotron 背景图像不起作用。我究竟做错了啥?

使用 API 不起作用,我在这里做错了啥?

使用 API 时我在这里做错了啥?

MobFox iOS 框架,XIB 卸载时崩溃......我在这里做错了啥?

嗨,我正在尝试学习 Apache 骆驼框架。我不知道我在这里做错了啥