0

基本上我有一个按钮(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 能体谅一下。

4

1 回答 1

0

通常,当您使用对话框时,您必须使用 showDialog() 方法将其包装起来,例如:

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

其次,我看到你有嵌套的警报对话框小部件,我认为你应该重组它。

于 2021-06-28T06:17:21.163 回答