微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Future<Widget> 函数 Flutter 中调用小部件

如何解决在 Future<Widget> 函数 Flutter 中调用小部件

基本上我有一个按钮(GestureDetector)可以在同一个文件调用 Future 函数。问题是该函数中的小部件未按预期显示,但后台进程已成功运行。

触发器:

showDialog(
context: context,builder: (context) {
AlertDialog(
  /// Below the button to call function *resetPassword*
  GestureDetector(
   child: Text("Yes"),onTap: () async {
   Navigator.of(context).pop();
   resetPassword('manan@gmail.com')}))})

小部件功能

Future<Widget> resetPassword(email) async {
try{
await FirebaseAuth.instance.sendPasswordResetEmail(email: email)
return AlertDialog(
///the content of dialog)
}on FirebaseAuthException catch (e) {
return AlertDialog(
///the content of dialog)
}}

出人意料的是,重置密码的邮件发送成功了。
免责声明:我是 Flutter 新手,希望 sifus 能考虑一下。

解决方法

一般来说,当您使用对话框时,您必须使用 showDialog() 方法对其进行包装,例如:

  await showDialog(
   context: context,builder: (BuildContext context) {
    return AlertDialog(
      title: Center(child: Text('Reset password')),content: Builder(
        builder: (context) {
          return Container(child: ForgotPasswordForm());
        },),);
  },);

其次,我看到您嵌套了警报对话框小部件,我认为您应该对其进行重组。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。