Flutter已重写build仍报State.build缺失实现错误求助
报错根因
这个报错和build方法本身的实现无关,是代码花括号不匹配导致的语法解析错误:
- 你编写的
Future passwordReset()异步方法,在最后一个异常捕获逻辑结束后,缺失了一个用于闭合方法的右花括号} - Dart解析器会因此把后续写的
@override Widget build方法判定为passwordReset()的内部函数,不属于_ResetPasswordViewState类的成员,自然会抛出“缺少build实现”的错误 - 代码最末尾多出来的一个右花括号,就是原本应该闭合
passwordReset()方法的括号,只是位置放错了。
修复步骤
- 在
passwordReset()方法最后一个on GenericAuthException代码块结束后,添加右花括号,闭合该异步方法 - 删除代码文件最末尾多余的那个右花括号,避免出现新的语法错误
修正后的passwordReset()方法代码如下:
Future passwordReset() async{ try { await FirebaseAuth.instance.sendPasswordResetEmail(email: _email.text); showDialog( context: context, builder: (context) { return const AlertDialog( content : Text('Password reset link sent! Check your email'), ); } ); } on UserNotFoundAuthException { await showErrorDialog( context, 'User not found', ); } on InvalidEmailAuthException { await showErrorDialog( context, 'This is an invalid email address', ); } on GenericAuthException { await showErrorDialog( context, 'Please try again', ); } } // 此处补全之前缺失的方法闭合括号
修复完成后保存代码,Flutter的语法分析器会正确识别到类内的build重写方法,报错会直接消除。
内容的提问来源于stack exchange,提问作者Ruben
相关产品推荐
相关产品推荐

