Вызов виджета в Future <Widget> function 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 это рассмотрит.
1 ответ
Когда вы работаете с диалогами в целом, вам нужно обернуть его методом showDialog(), например:
await showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Center(child: Text('Reset password')),
content: Builder(
builder: (context) {
return Container(child: ForgotPasswordForm());
},
),
);
},
);
Во-вторых, я вижу, что у вас есть вложенные виджеты диалогового окна предупреждений, и я думаю, вам следует реструктурировать это.