3
respostas

Erro List com sdk mais recente

Estou recebendo esse erro no FutureBuilder, por que? Estou usando o sdk >=2.12 error: A value of type 'Object?' can't be assigned to a variable of type 'List'.

body: FutureBuilder(
        initialData: [],
        future: 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,
          );
        },
      ),

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
3 respostas

Oi Fabio, provavelmente o snapshot.data não está retornando uma lista como esperado. Recomendo colocar um print para dar uma olhada no que está vindo. Se for o caso, substitua a constante final List<Contact> contacts = snapshot.data; por final var contacts = snapshot.data;

Colocar var final var contacts = snapshot.data; gerou 3 outros erros

  • Members can't be declared to be both 'final' and 'var'.
  • The method '[]' can't be unconditionally invoked because the receiver can be 'null'.
  • The property 'length' can't be unconditionally accessed because the receiver can be 'null'.

Bom dia Fabio, tudo bom?

Então achei um artigo do Flutter, em relação ao snapshot. Dá uma olhada aqui e veja se consegue te ajudar, caso não, vamos procurar outra maneira.

Qualquer dúvida, estamos a disposição.