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,
          );
        },
      ),
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.