J'utilisais des mutations graphql comme ceci et le travail .Chen & .Catch fonctionne parfaitement: Je fais maintenant quelque chose de similaire ici pour une requête graphql (version de travail plus complète ci-dessous): mais je continue à obtenir une erreur sur la propriété éditer : P> Sans le .Chen, .Catch, mon code fonctionne correctement. La forme complète est quelque chose comme ceci: p> Voici comment la requête graphql elle-même ressemble à: p> "alors" n'existe pas sur le type "vide" p> p>
Object
__typename: "User"
email: "first@first.com"
firstName: "First"
id: 148
lastName: "User"
phoneNumber: "+49123"
3 Réponses :
Cela dépend de ce qui se passe exactement dans Si vous modifiez lohasers code>, mais il est probable que vous ayez oublié une déclaration de retour là-bas. P>
lohausers code> pour renvoyer la promesse pour le chargement de l'utilisateur, votre code doit commencer à fonctionner bien. P>
LOADUSERS est une requête graphql. Je ne pense pas avoir besoin d'une déclaration de retour là-bas, n'est-ce pas? Comme dans le premier exemple, updateaser () est également une mutation graphql et fonctionne correctement. Pourriez-vous voir mes QS mis à jour, puis expliquer ce que vous vouliez dire?
Cette réponse est absolument correcte. Enterré dans l'exemple de OP bien, c'est que loadusers code> provenait d'une méthode externe,
UselazyQuery Code> fourni par APOLLO. La méthode renvoyée ne renvoie pas une promesse.
Alors, comment puis-je accéder au message d'erreur alors? De plus, par exemple, la requête renvoie un objet avec la propriété ID code> alors comment puis-je accéder à la propriété? En cas de mutations, je ferais simplement
data.loaduser.id code> ou quelque chose et cela fonctionnerait mais pas dans ce cas. Alors, quelle est la solution? @Lmulvey
Si vous regardez The Docs Pour Au lieu de s'appuyer sur une promesse, vous devez utiliser les deuxièmes paramètres (chargement, données) renvoyés lors de l'appelant UselazyQuery Code>, il ne renvoie pas un
prometteur code> comme
usertatation code> afin qu'ils se comportent différemment. p>
UselazyQuery code>. C'est pourquoi dans votre édition, votre code fonctionne sans le
.Chen code>. P>
J'ai essayé d'ajouter {chargement, de données, erreur} code> mais si je fais
console.log ('erreur:', erreur); code> après la fin de la requête des chargeurs, je suis toujours indéfini. . Même quand il y a une erreur. Quelle est la bonne façon de l'utiliser? Je n'ai pas pu trouver d'exemple pertinent.
Comme indiqué dans d'autres réponses, c'est un problème connu - "" La fonction d'exécution de l'USLazyQuery devrait revenir Une promesse # 3499 "
au lieu de p> Vous pouvez utiliser inecompleté code> option p>
Étant donné que j'utilise des chargeurs de chargeurs de plusieurs fois (chaque fois avec différents paramètres), je ne suis pas sûr que cela serait réalisable.
J'ai essayé d'ajouter {chargement, de données, erreur} code> mais si je fais
console.log ('erreur:', erreur); code> après la fin de la requête des chargeurs, je suis toujours indéfini. . Même quand il y a une erreur. Quelle est la bonne façon de l'utiliser? Je n'ai pas pu trouver d'exemple pertinent.
Vous pouvez appeler la mutation avec différentes variables à partir de plusieurs endroits - la manipulation des données est généralement la même ... Loading code> peut être indéfini si
DATA code> est OK
Cela ne répond pas vraiment à ma question. Comment puis-je accéder au message d'erreur alors? De plus, par exemple, la requête renvoie un objet avec la propriété ID code> alors comment puis-je accéder à la propriété? En cas de mutations, je ferais simplement
data.loaduser.id code> ou quelque chose et cela fonctionnerait mais pas dans ce cas. Alors, quelle est la solution?
Erreur CODE> est disponible dans le corps FN Composant (comme vous avez essayé plus tôt) ... ID? vérifier la réponse / console.log it? ...
data.id code>?
L'erreur vient comme non définie. Et data.Id jette également une erreur non définie n'est pas un objet. Data.Users.nodes renvoie un objet, mais si j'appuie .Id à cela, cela ne fonctionne pas.
S'il s'agit d'une matrice, ITATEZ ITER IT ... NODES [0] .Id CODE> ... Tout cela, vous pouvez vérifier - la réponse est un JSON - Vérifiez-le
où est
lohasers code>?
Question mise à jour @wyck