1
resposta

Página de erro ainda aparece (nullable)

Boa noite,

Tudo tranquilo? Estou tentando consertar o erro de nullabe da class ContactsList, mas ainda não conseguir. Poderiam me informar o que estou fazendo de errado? Segue código:

class ContactsList extends StatelessWidget {

  @override
  Widget build(BuildContext context) {

    return Scaffold(
      appBar: AppBar(
        title: Text('Contacts'),
      ),
      body: FutureBuilder<List<Contact>>(
        initialData: [],
        future: Future.delayed(Duration(seconds: 1)).then((value) => findAll()),
        builder: (context, snapshot) {
          final List<Contact>? contacts = snapshot.data;
          return ListView.builder(
            itemBuilder: (context, index) {
              final Contact contact = contacts![index];
              return _ContactItem(contact);
            },
            itemCount: contacts!.length,
          );
        },
      ),
      //
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          Navigator.pushNamed(context, '/contact_form')
              .then((newContact) => debugPrint(newContact.toString()));
        },
        child: const Icon(Icons.add),
      ),
    );
  }
}
1 resposta

Olá Taciane

Com este código

          final List<Contact>? contacts = snapshot.data;

você está permitindo que a lista seja nula. Eu fiz de outra forma:

List<Contact> contacts = snapshot.data ?? [];

Deste modo, em caso de snapshot nulo a lista será vazia.