0
votes

Builder: de futurbuilder ne fonctionne pas

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;


2 commentaires

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 .


3 Réponses :


0
votes

futurbuilder est un widget . Vous ne devriez pas l'utiliser dans comprubadatos () .

INTÉRIEUR ONPRESSED Vous devez appeler DatabaseProvider.db.getalUsers () directement et traiter la réponse et appelez navigator.of (contexte) .PUSH (.. .) pour aller à une autre page.


2 commentaires

Ok, merci, mais comment je peux vérifier si la liste a des données ?. C'est pourquoi j'ai essayé d'utiliser le futurbuilder.


Je l'ai fait mais toujours le même problème.



0
votes

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


0 commentaires

0
votes

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 xxx


0 commentaires