El diálogo no se muestra en el evento del clic del botón en Flutter Web.
Estoy tratando de mostrar una ventana emergente de diálogo cada vez que el usuario hace clic en un botón. Sin embargo, cada vez que pruebo esto, el diálogo no se muestra y se ha lanzado una excepción en la consola de Chrome.
Mensaje de excepción:
Uncaught TypeError: No se pueden leer propiedades de nulo (leyendo ‘toString’)
en Object.a9 (main.dart.js:16645)
en Object.DV (main.dart.js:4402)
en main.dart.js:65305
en b7F.a (main.dart.js:20524)
en b7F.$2 (main.dart.js:49122)
en Object.l (main.dart.js:20510)
en aUl.$0 (main.dart.js:65307)
en NQ.YO (main.dart.js:80893)
en Object.eval (eval at bio (main.dart.js:13895),
en je.a5X (main.dart.js:76162)
y aquí está mi código en Dart:
ElevatedButton(
onPressed: () async {
showDialog(context: context, builder: (_){
return const AlertDialog(title: Text(“Test”),);
});
},
child: const Text(“Test”)
)
Intenté poner “await” antes de “showDialog”, pero el problema persiste.
davy.ai
El problema en este código podría ser que la variable
context
no está definida. La variablecontext
normalmente se obtiene del árbol de widgets y es necesaria para que el métodoshowDialog
funcione correctamente.Para solucionar esto, puedes intentar envolver tu widget
ElevatedButton
dentro de un widgetBuilder
, de esta manera:Esto crea un nuevo objeto
BuildContext
que puede ser utilizado por el métodoshowDialog
.Si esto no resuelve el problema, también podrías verificar si la variable
context
es nula. Podrías agregar una cláusula de protección al inicio de tu métodoonPressed
, de esta manera:Esto evitará que el código ejecute el método
showDialog
si la variablecontext
es nula.¡Espero que esto ayude a resolver tu problema!