1
resposta

The getter 'length' was called on null.

estou fazendo um app como projeto pessoal, onde eu tenho uma tela de lista de transferências, e um formulário para realizar uma nova transferência. Estou usando como package o sqflite e o path, e criei o db usando a forma DAO. Entretanto.... estou recebendo um erro quando eu finalizo a transferência pelo forms. (fluxo do erro: Entrar no app, clicar na aba que tem um $, clicar no botão +, preencher os campos do formulário, clicar no botão transferir) O erro no console é o seguinte:

════════ Exception caught by widgets library ═══════════════════════════════════
The following NoSuchMethodError was thrown building FutureBuilder<List<Transferencia>>(dirty, state: _FutureBuilderState<List<Transferencia>>#c0fdc):
The getter 'length' was called on null.
Receiver: null
Tried calling: length

The relevant error-causing widget was
FutureBuilder<List<Transferencia>>
package:flutter_bank/…/transfer/pageThree.dart:21
When the exception was thrown, this was the stack
#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5)
#1      _PageThreeMenuState.build.<anonymous closure>
package:flutter_bank/…/transfer/pageThree.dart:44
#2      _FutureBuilderState.build
package:flutter/…/widgets/async.dart:751
#3      StatefulElement.build
package:flutter/…/widgets/framework.dart:4744
#4      ComponentElement.performRebuild
package:flutter/…/widgets/framework.dart:4627

Ja tentei tratar esse null, usando:

if (transf != null) {
                  return ListView.builder(
                    itemBuilder: (context, index) {
                      final Transferencia transferencia = transf[index];
                      return CustomCard(transferencia);
                    },
                    itemCount: transf.length,
                  );
                } else {
                  return Center(
                    child: TitleFont(
                      text: 'Faça uma nova transferência!',
                      fontSize: 30,
                    ),
                  );
                }

O erro até some, mas o fluxo não acontece como esperado, e continua mandando uma transferência nula e fazendo cair no else do código.

Meu código: https://github.com/ggsant/Trilha-de-aprendizado-Fllutter-ALURA/tree/main/FlutterBank/flutter_bank

1 resposta

Oi Gabriela, tudo bem ?

Vi seu código e a única coisa que achei estranho foi o future delayed, acho que não precisaria dele.