0
votes

Comment faire fonctionner CONTEXT pour que le fournisseur fonctionne? Battement

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. xxx xxx

merci d'avance.


0 commentaires

3 Réponses :


0
votes

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é.


2 commentaires

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?



0
votes

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

BuildContext.dependOnInheritedWidgetOfExactType à partir de cette méthode. Cependant, didChangeDependencies sera appelé immédiatement après cette méthode, et BuildContext.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)


1 commentaires

OMG! Cela a résolu mon problème! Merci beaucoup. Passe une bonne journée.



0
votes

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.


0 commentaires