4
votes

Comment réparer le type 'Future ' n'est pas un sous-type de type 'String' Flutter

Flutter débutant ici; J'obtiens cette erreur: type 'Future ' n'est pas un sous-type de type 'String'

Fonction qui récupère l'URL de téléchargement à partir du stockage Firebase

child:  Image(
  image:  AdvancedNetworkImage(
    _getImageUrl(menuItem['image'].toString()),
    timeoutDuration: Duration(minutes: 1),
    useDiskCache: true,
    cacheRule: CacheRule(maxAge: const Duration(days: 7)),
  ),
  height: mediaQuery.size.width * 0.22,
  width: mediaQuery.size.width * 0.22,
),


1 commentaires

Est-ce que cela répond à votre question? Qu'est-ce qu'un avenir et comment l'utiliser? < / a>


3 Réponses :


-5
votes

Votre obtenir l'URL de l'image doit renvoyer un Future .


2 commentaires

maintenant j'obtiens cette erreur 'Le type d'argument' Future 'ne peut pas être assigné au type de paramètre' String '.'


utilisez wait avant d'appeler cette fonction




2
votes

Premièrement, Flutter renvoie un Future lorsque les fonctions asynchrones ne sont pas terminées, une fois terminé, il renverra des données de type type . L'erreur que vous faites est d'appeler un asynchrone à partir d'une fonction synchrone . Bien que dart exécute les fonctions de manière asynchrone (vous pouvez le valider en imprimant l'url depuis la fonction asynchrone ).
Mais l'endroit d'où vous l'appelez n'attend pas pour que la fonction asynchrone se termine.
J'espère que c'est clair maintenant.
Pour plus de clarté, visitez Programmation asynchrone < / p>


0 commentaires