1
resposta

Erro na Aula 5 apos transformar classe em StatefulWidget

Erro de "NoSuchMethodError: The method '_debugTypesAreRight' was called on null." na instancia do 'ListaTransferencias', Fiz tudo conforme o primeiro vídeo da aula 5 e na hora de mudar o ListaTransferencias para StatefulWidget apareceu isso. Provavelmente o erro é por causa do versionamento já que estou usando o Flutter mais recente, gostaria de aprender a resolver. Segue abaixo o código completo acredito ter feito tudo igual a aula.

class ListaTransferencias extends StatefulWidget {

  final List<Transferencia> _transferencias = List();

  @override
  State<StatefulWidget> createState() {
    // TODO: implement createState
    return null;
  }
}

class ListaTransferenciasState extends State<ListaTransferencias> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: ListView.builder(
        itemCount: widget._transferencias.length,
        itemBuilder: (context, indice) {
          final transferencia = widget._transferencias[indice];
          return ItemTransferencia(transferencia);
        },

      ),
      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');
            widget._transferencias.add(transferenciaRecebida);
          });
        },
      ),
      appBar: AppBar(
        title: Text('Transferências'),
      ),
    );
  }
}

Pelo o q acompanhei com o hot reaload enquanto fazia a aula o erro está no future.then 'widget._transferencia'

1 resposta

O problema é no método createState, está retornando "null", é necessário fazer uma "chamada para o State" do Widget que você criou. ListaTransferenciaState createState() => ListaTransferenciaState();