Dans la fonction FETCHSTOUDENTTINFO (), j'aimerais utiliser l'ID utilisateur de la classe d'authentification pour filtrer. L'ID utilisateur est intégré à l'URL et récupérera les données de la base de données. Mais la question est que le contexte manque de fonction elle-même. Cependant, je ne pouvais pas comprendre un moyen de passer dans le contexte. Ce serait bien si une légende pourrait m'aider. La solution qui récupère des données d'Internet se trouve sur la documentation de la batterie. Et je ne voudrais pas que le code du disque dur de l'utilisateur. merci d'avance. P> p> p>
3 Réponses :
La solution la plus simple ne serait-elle pas de transmettre le contexte dans fetchStudentInfo
?
Vous changeriez fetchStudentInfo ()
en fetchStudentInfo (contexte BuildContext)
. Et puis, lorsque vous appelez la méthode, vous passez dans le contexte requis. De cette façon, vous disposez du contexte approprié.
Après avoir modifié fetchStudentInfo () pour fetchStudentInfo (contexte BuildContext), la fonction dans initState gt une erreur. Cependant, si je passe le contexte dans les arguments, une erreur s'est produite, Message du compilateur: lib / main.dart: 1: 8: Erreur: introuvable: 'dart: js' import 'dart: js';
Jetez un œil à vos importations. Peut-être importez-vous BuildContext
à partir du mauvais package?
Je suis d'accord avec @lyio , vous devez modifier la fonction pour transmettre le contexte, mais après avoir passé le contexte, vous impossible de l'appeler depuis initState comme indiqué dans la documentation de initState p >
BuildContext.dependOnInheritedWidgetOfExactType
à partir de cette méthode. Cependant,didChangeDependencies
sera appelé immédiatement après cette méthode, etBuildContext.dependOnInheritedWidgetOfExactType
peut être utilisé ici.
Obtenir le fournisseur avec Provider.of (context) sous le capot utilise le widget hérité, donc ne peut pas être appelé en utilisant le contexte de initState
Donc, implémentez plutôt que initState, utilisez didChangeDependencies pour appeler votre < code> méthode fetchStudentsInfo (context)
OMG! Cela a résolu mon problème! Merci beaucoup. Passe une bonne journée.
Si vous n'utilisez pas fetchStudentInfo ()
en dehors de la classe state, déplacez simplement cette méthode dans la classe state et le problème sera résolu.
Depuis Any state class a un getter context
défini par défaut.