1
resposta

Contado nao adiciona automaticamente

Ao final do curso, eu consegui fazer toda a persistencia, mas quando eu adiciono um novo contato, ele não aparece imediatamente na minha lista, necessito voltar ao dashboard e depois retornar a lista para ver o novo contato.

Meu código do contact_list ta igual do vídeo, usando statelesswidget e tudo.

Alguem sabe o por quê?

import 'package:bytebank/dao/contact_dao.dart'; import 'package:bytebank/models/contact.dart'; import 'package:bytebank/screens/contact_form.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart';

class ContactsList extends StatelessWidget { final ContactDao _dao = ContactDao(); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Contacts'), ), body: FutureBuilder<List>( initialData: List(), future: _dao.findAll(), builder: (context, snapshot) { switch (snapshot.connectionState) { case ConnectionState.none: break; case ConnectionState.waiting: return Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ CircularProgressIndicator(), Text('Loading') ], ), ); break; case ConnectionState.active: break; case ConnectionState.done: final List contacts = snapshot.data; return ListView.builder( itemBuilder: (context, index) { final Contact contact = contacts[index]; return _ContactItem(contact); }, itemCount: contacts.length, ); break; } return Text("Unknown error"); }), floatingActionButton: FloatingActionButton( onPressed: () { Navigator.of(context).push( MaterialPageRoute( builder: (context) => ContactForm(), ), ); }, child: Icon(Icons.add), ), ); } }

class _ContactItem extends StatelessWidget { final Contact contact; _ContactItem(this.contact);

@override Widget build(BuildContext context) { return Card( child: ListTile( title: Text( contact.name, style: TextStyle(fontSize: 24.0), ), subtitle: Text( contact.accountNumber.toString(), style: TextStyle(fontSize: 16.0), ), ), ); } }

1 resposta

Tive esse mesmo problema, resolvi ele transformando minha contactList em stateful widget, você pode transformar ela simplesmente selecionando o statelessWidget e clicando alt+enter para usar a magic wand e converter, após fazer isso só testar que deve funcionar.