Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Global form key duplicated #9

Closed
eossa opened this issue Jan 13, 2022 · 2 comments
Closed

Global form key duplicated #9

eossa opened this issue Jan 13, 2022 · 2 comments

Comments

@eossa
Copy link

eossa commented Jan 13, 2022

Hola Darwin, tengo un problema:

Estoy usando una global key para un formulario y la cree en el SimpleNotifier

class ExampleController extends SimpleNotifier {
...
  GlobalKey<FormState> formKey = GlobalKey<FormState>();
...
}

Entonces hago el siguiente flujo
VistaInicial -> VistaLista -> VistaModificarItem -> VistaAgregarItem

La VistaModificarItem y la VistaAgregarItem son la misma solo que cuando se agrega tiene un parámetro 0 y cuando se edita un parámetro distinto de 0.

El problema ocurre cuando intento pasar desde VistaModificarItem a VistaAgregarItem, o desde VistaAgregarItem a otra VistaAgregarItem.

Intenté usar router.popAndPushNamed('/create'), pero antes de que se llame el dispose arroja un error de que la GlobalKey está duplicada.

¿Qué podría hacer en ese caso?, ¿acaso indicar autoDispose: false y llamar el dispose antes del router.push?

@darwin-morocho
Copy link
Owner

darwin-morocho commented Jan 14, 2022

parace que necesitas usar los tags https://flutter.meedu.app/docs/5.x.x/state-management/working-with-tags

cuando navdgas de una pantalla que usa un provider a otra que otiliza el mismo provider no importa si haces el pop de la primera pantalla ya que para que el provider sea destruido primero debe terminar la transición de pantalla. Otra cosa que puedes hacer es usar auto dispose false y a tus páginas convertirlas a un statefulwidget y sobreescribir el método dispose y ahí liberar el provider

@eossa
Copy link
Author

eossa commented Jan 14, 2022

Muchas gracias por la rápida respuesta, efectivamente con la tag solucioné el problema.

@eossa eossa closed this as completed Jan 14, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants