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

Problema com a função _criaTransferencia

Estou tendo problema com a função _criaTransferencia() o navigation.pop não esta reconhecendo o context

  void _criaTransferencia() {
    //! MOSTRA UM PRINT NO DEBUG AO CLICAR NO BOTÃO.
    // debugPrint('Clicou em confirmar');

    //! COLHE AS INFORMAÇÕES INSERIDAS NOS TEXTFILDS
    final int numeroConta = int.tryParse(_controladorConta.text);
    final double valor = double.tryParse(_controladorValor.text);

    //! INSERINDO OS VALORES NA CLASSE TRANSFERENCIA
    if (numeroConta != null && valor != null) {
      final transferenciaCriada = Transferencia(valor, numeroConta);
      debugPrint('Criando transferência');
      debugPrint('$transferenciaCriada');
      Navigator.pop(/* aqui => */context, transferenciaCriada);
    }
  }

Todo o código esta igualzinho ao do professor mais n esta reconhecendo essa parada, ja estou estressado com isso ja e não consigo achar solução.

O meu listar transferência esta ok, igualzinho o do professor.

class ListaTransferencias extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Transferência'),
      ),
      body: Column(
        //! A COLUNA DEIXA TODOS OS CARDS ALINHADOS UM ENCIMA DO OUTRO.
        children: <Widget>[
          //! CRIASE UM FILHO NA COLUNA PARA QUE ELA POSSA PERMANECER ATIVA
          ItemTransferencia(Transferencia(100.00, 203040)),
          ItemTransferencia(Transferencia(500.00, 203050)),
          ItemTransferencia(Transferencia(500.00, 203060)),
          ItemTransferencia(Transferencia(500.00, 203070))
        ],
      ),
      floatingActionButton: FloatingActionButton(
        child: Icon(Icons.add),
        onPressed: () {
          final Future<Transferencia> future = Navigator.push(
            context,
            MaterialPageRoute(builder: (context) {
              return FormularioTransferencia();
            }),
          );
          future.then((transferenciaRecebida) {
            debugPrint('Chegou no then do future');
            debugPrint('$transferenciaRecebida');
          });
        },
      ),
    );
  }
}

Alguém pode me ajudar?

1 resposta
solução!

Consegui resolver, Tem que passar como parâmetro o context para a função _criaTransferencia() Eu tava tão vibrado em achar uma solução por mim mesmo que nem lembrei de assistir o vídeo de novo. kkkkkkk.

O código já funcional:

void _criaTransferencia(BuildContext context) {
    //! MOSTRA UM PRINT NO DEBUG AO CLICAR NO BOTÃO.
    // debugPrint('Clicou em confirmar');

    //! COLHE AS INFORMAÇÕES INSERIDAS NOS TEXTFILDS
    final int numeroConta = int.tryParse(_controladorConta.text);
    final double valor = double.tryParse(_controladorValor.text);

    //! INSERINDO OS VALORES NA CLASSE TRANSFERENCIA
    if (numeroConta != null && valor != null) {
      final transferenciaCriada = Transferencia(valor, numeroConta);
      debugPrint('Criando transferência');
      debugPrint('$transferenciaCriada');
      Navigator.pop(context, transferenciaCriada);
    }
  }

Alarme falso, kkkk!