2
respostas

.then não está recarregando a tela.

Olá, tudo bem? Fiz igual a aula com o professor e não ocorreu o refresh, apenas atualizou com Hot Reload. A única solução encontrada, foi remover o .then e na pasta form_screen.dart transformar o Navigator.pop(context); em Navigator.push. Ficou assim:

                        Navigator.push(
                          context,
                          MaterialPageRoute(
                            builder: (contextNew) => InitialScreen(),
                          ),
                        );

Queria conferir se pode ser mantido assim, não consegui encontrar uma maneira de utilizar o .then.

2 respostas

Boa tarde!!

A tua solução de substituir Navigator.pop(context) por Navigator.push e carregar a tela inicial novamente é boa, mas é importante verificar se o comportamento de navegação fica como esperado (por exemplo, garantindo que a pilha de navegação não cresça indefinidamente).

Abs.

Boa tarde, Julia, tudo bem?

É importante saber que o Navigator funciona como uma pilha e, cada vez que você usa o "Navigator.push", você está adicionando uma nova tela na pilha. O "Navigator.pop" é o contrário, ao usá-lo, você remove uma tela da pilha.

O principal problema é que, ao usar apenas o "Navigator.push", você está adicionando, adicionando e adicionando telas na pilha, e em nenhum momento você está retirando-as.

Na aplicação do curso, onde a navegação é feita entre apenas duas telas, isso pode não ser um grande problema, e usar apenas o "push" pode funcionar bem. Mas em um aplicativo mais complexo, você pode adicionar muitas telas à pilha rapidamente, o que pode resultar em um consumo muito alto de memória, travamentos e outros problemas.

Um abraço! :)