1
resposta

Falha ao renderizar tarefa pela primeira vez

Olá, Tou meio grilado aqui com uma coisa que está acontecendo que há um bug apenas, e só apenas na primeira tentativa de adicionar uma tarefa. A mesma não é renderizada na lista, quando se faz o Navigator.pop(context).

Porém ao testar da segunda vez em diante, o app funciona normal..

No meu InitialScreen tenho:

class _InitialScreenState extends State<InitialScreen> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        leading: Container(),
        title: const Text('Task UP!'),
      ),
      body: ListView(
        children: TaskInherited.of(context).taskList,
        padding: EdgeInsets.only(top: 8, bottom: 70),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          Navigator.push(context,
              MaterialPageRoute(builder: (contextNew) => FormScreen(taskContext: context)));
        },
        child: const Icon(Icons.add),
      ),
    );
  }
}

No meu FormScreen tenho o contexto da InitialScreen declarado para receber no construtor normalmente:

final BuildContext taskContext;

  FormScreen({Key? key, required this.taskContext}) : super(key: key);

E ainda no FormScreen, adiciono normalmente a task no contexto armazendo da InitialScreen:

ElevatedButton(
                      onPressed: () {
                        if (_formKey.currentState!.validate()) {
                          TaskInherited.of(widget.taskContext).addNewTask(
                              descTaskController.text,
                              imageController.text,
                              int.parse(diffController.text));
                          ScaffoldMessenger.of(context).showSnackBar(
                            const SnackBar(
                              content: Text('Saving new Task'),
                            ),
                          );
                        }
                        Navigator.pop(context);
                      },
                      child: Text('Add'))

Já tentei aqui algumas vezes fazer isso funcionar na primeira tentativa de adicionar a tarefa mas nunca adiciona :(

Obs: algumas variáveis mudei de nome, mas a lógica é idêntica.

1 resposta

Resolveu? Estou com o mesmo problema