2
respostas

[Dúvida] Aplicação dos conceitos desta aula em projeto pessoal

Salve galera, tentei aplicar os conceitos desta aula em um projeto pessoal, sendo o meu um pouco mais simples do que o proposto na aula. Até a parte de navegação foi de boa, mas quando chegou na parte de estado e conversa entre widgets ficou um pouco mais complicado. Eu cheguei a finalizar o meu projeto, mas ele ficou com um bug. O bug consiste basicamente na tela inicial: ela só está sendo rebuildada quando o usuário faz dois inputs completos. Isso já aconteceu com alguém aqui? Eu procurei a respeito desse problema e não encontrei nada parecido.

Link do projeto no github: https://github.com/leandromarcelino93/menuproject.git

Disponibilizo também um GIF para demonstração.Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas

Bom dia Leandro, seguinte: Verificando seu código eu notei que não há um setState na sua tela inicial, talvez valha a pena você adicionar um then() no seu Navigator aqui em baixo:

 floatingActionButton: FloatingActionButton(
        onPressed: () {
          Navigator.push(
              context,
              MaterialPageRoute(
                  builder: (contextNew) => FormScreen(
                        menuContext: context,
                      ))).then(value) => setState((){'Estamos rebuildando a tela!'}));

Agora, rebuild de tela é um problema cabeludo!

Quando se trata de buildar a tela com qualidade o buraco é mais embaixo. Acontece que inicialmente trabalhamos com um rebuild de tela (setState) não tão eficiente, mas estamos usando ele pois é o mais simplificado e fácil de aprender. Estamos bolando conteúdos de Gerenciamento de estados que facilitam e MUITO nessa questão de rebuild de tela no momento certo, mas eles são num nivel mais avançado!

Bom dia Kako!

Cara... Realmente vou concordar com vc, esse negócio de rebuild de tela é cabuloso mesmo. Eu tentei a sua sugestão e já tinha tentado algumas outras formas, mas nada surtiu efeito. Eu vou me aprofundar um pouco mais nessa questão para resolver esse pequeno probleminha lá mais pra frente. Eu até postei aqui porque achei que fosse alguma coisa mais simples, que talvez fosse algum detalhe que eu não estivesse enxergando. Mas de toda forma, muito obrigado pela sua atenção!

Abração.