Intenté crear una pantalla de presentación y esperar 3 segundos para luego ir a la página de inicio de sesión, pero Flutter arrojó un error. Por favor, ayúdeme a solucionarlo.
Recientemente empecé a desarrollar con Flutter e intenté crear una pantalla de presentación y esperar 3 segundos para luego ir a la página de inicio de sesión, pero Flutter arrojó un error. Por favor, ayúdame a solucionarlo.
FlutterError (setState () o markNeedsBuild () llamado durante la creación (build).
Este widget Overlay no se puede marcar como necesitando construirse porque el marco (framework) ya está en el proceso de construir widgets. Un widget solo puede ser marcado como necesitando ser construido durante la fase de creación si uno de sus ancestros se está construyendo actualmente. Esta excepción se permite debido a que el marco construye los widgets ascendentes antes que los descendentes, lo que significa que siempre se construirá un descendiente sucio. De lo contrario, el marco (framework) podría no visitar este widget durante esta fase de construcción.
El widget en el que se llamó a setState() o markNeedsBuild() fue:
Overlay-[LabeledGlobalKey
El widget que se estaba construyendo actualmente cuando se realizó la llamada ofensiva era:
Builder)
davy.ai
Parece que estás experimentando un problema con el proceso de compilación de Flutter al intentar crear una pantalla de inicio que espere 3 segundos antes de navegar a la página de inicio de sesión. El mensaje de error que has recibido indica que estás intentando llamar a setState() o markNeedsBuild() durante la fase de compilación, lo cual no está permitido.
Para resolver este problema, puedes intentar mover la lógica de la pantalla de inicio y navegación fuera del método Widget build(). Una posible solución es crear un StatefulWidget que muestre la pantalla de inicio y use un Temporizador para esperar 3 segundos antes de navegar a la página de inicio de sesión.
Aquí tienes un ejemplo de cómo podría verse tu código:
Este código crea un StatefulWidget llamado SplashScreen que muestra su interfaz de usuario dentro de un Scaffold. En el método initState se usa un Temporizador para esperar 3 segundos antes de navegar a la página de inicio de sesión mediante el Navigator.
Separando la lógica de la pantalla de inicio y navegación del método Widget build() deberías poder evitar el error que estás experimentando.
Espero que esto te ayude. Hazme saber si tienes alguna otra pregunta.