Quand j'essaie d'utiliser le futurbuilder dans ce cas seulement fait l'avenir: mais ne va pas au constructeur: pour une raison quelconque que je ne trouve pas. Je ne peux pas vérifier si c'est HASDATA ou non. Je vous donne le code ici.
Future<List<Usuario>> getAllUsers() async { final db = await database; var response = await db.query("Usuarios"); List<Usuario> list = response.isNotEmpty ? response.map((c) => Usuario.fromMap(c)).toList() : []; return list;
3 Réponses :
INTÉRIEUR futurbuilder code> est un widget
code>. Vous ne devriez pas l'utiliser dans
comprubadatos () code>. p>
ONPRESSED CODE> Vous devez appeler
DatabaseProvider.db.getalUsers () Code> directement et traiter la réponse et appelez
navigator.of (contexte) .PUSH (.. .) code> pour aller à une autre page. P>
Ok, merci, mais comment je peux vérifier si la liste
Je l'ai fait mais toujours le même problème.
Je l'ai changé à soulagement mais toujours le même problème. Sans le futurbuild Comment puis-je savoir que j'ai des données?
onPressed: (){ FutureBuilder<List<Usuario>>( future: DatabaseProvider.db.getAllUsers(), builder: (BuildContext context, AsyncSnapshot<List<Usuario>> snapshot){ if (snapshot.hasData) { if (snapshot.data !=null) { print('Datos nulos'); return HomePage(); }else{ print('Datos recogidos'); return HomePage(); } }else{ print('No aparece nada'); return HomePage(); } }, );
résolu. Je change le futurbuilder à l'intérieur d'un enfant et vérifie si la longueur de l'instantané est plus grande que 0
A-t-il imprimé une valeur?
FutureBuilder est widget et constructeur seront appelés lorsque le widget est rendu. Si vous voulez aller à un autre écran, vous pouvez utiliser Navigator .