Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Estou tentando utilizar a variável criada no then para ser adicionada na lista, porem aparece um erro que a variável não foi definida.

@override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Transferencia'),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          final Future<Transferencia?> future = Navigator.push(context, MaterialPageRoute(builder: (context){
            return FormularioTransferencia();
          }));
          future.then((transfRecebida) => debugPrint('Trans recebida'));
          if(transfRecebida != null) {
            _transferencias.add(transfRecebida);
            O ERRO OCORRE AQUI.
          }
        },
        child: const Icon(Icons.add),
      ),
      body: ListView.builder(
        itemCount: _transferencias.length,
        itemBuilder: (context, int indice) {
        return ItemTransferencia(_transferencias[indice]);
      },
      )
    );
  }
1 resposta

tu precisa criar uma variável de escopo global (uma variavel que tu veja em qualquer lugar do código).

por isso ta falando que ela não foi definida, pq ela só está dentro do future.

criaa uma var _transferencias ou uma lista list _transferencias =[]; lá no comecinho do código