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