Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] setState não está funcionando

Fiz o projeto seguindo as aulas, mas por algum motivo não está tendo o mesmo comportamento do professor no setState quando retorno da tela de formulário. Eu vou para a tela, preencho as informações da tarefa que quero adicionar, clico no botão, aparece o snackBar, mas não renderiza a tela com a tarefa adicionada. Se eu dou um hot reload ou clico no botão de refresh da appBar aí ela aparece. Inclusive já baixei até o código do professor (que está funcionando a atualização da tela) e também se comportou igual ao meu. Só aparece a nova tarefa se clicar no refresh ou der hot reload.

1 resposta
solução!

Consegui resolver colocando async/await no onPressed e no TaskDao().save

         ElevatedButton(
                      onPressed: () async {
                        if (_formKey.currentState!.validate()) {
                          await TaskDao().save(Task(title: nameController.text,
                              photo: imageController.text,
                              difficulty: int.parse(difficultyController.text)));
                          ScaffoldMessenger.of(context).showSnackBar(
                            const SnackBar(
                              content: Text(
                                'Salvando nova tarefa',
                              ),
                            ),
                          );
                          Navigator.pop(context);
                        }
                      },
                      child: const Text('Adicionar!'))