<p>apollo-link-error : le paramètre graphQLErrors est toujours indéfini</p>

Créé le 19 janv. 2018  ·  4Commentaires  ·  Source: apollographql/apollo-link

Résultat attendu

Les messages d'erreur renvoyés par les requêtes ayant échoué ne semblent jamais atteindre onError() car graphQLErrors est toujours indéfini, mais je reçois toujours une erreur networkError. Je peux trouver la demande ayant échoué avec les messages d'erreur de réponse dans l'onglet réseau de chrome. Est-ce que j'ai raté quelque chose ?

// Log errors
const errorLink = onError(({ graphQLErrors, networkError }) => {
  if (graphQLErrors)
    graphQLErrors.map(({ message, locations, path }) =>
      console.log(
        `[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}`
      )
    );
  if (networkError) console.log(`[Network error]: ${networkError}`);
});

// Combine all links
const link = split(
  // split based on operation type: subscription or query/mutation
  ({ query }) => {
    const { kind, operation } = getMainDefinition(query);
    return kind === 'OperationDefinition' && operation === 'subscription';
  },

  // Subscriptions Link
  from([
    // Log Apollo operations in development
    ...(__DEV__ ? [apolloLogger] : []),

    // Handle subscriptions, log errors in dev
    ...(__DEV__ ? [errorLink.concat(subscriptionsLink)] : [subscriptionsLink]),
  ]),


  // Uploads/http Link
  from([
    // Log Apollo operations in development
    ...(__DEV__ ? [apolloLogger] : []),

    // Handle http/file uploads, log errors in dev
    ...(__DEV__ ? [errorLink.concat(uploadLink)] : [uploadLink]),
  ]),
);

bug

Commentaire le plus utile

Des progrès à ce sujet ?

Tous les 4 commentaires

même problème ici. Nous aimerions avoir une fonction globale onError .
Actuellement, nous transmettons la fonction onError à chaque fonction subscribeToMore :

this.unsubscribe = data.subscribeToMore({
        document: ...,
        variables: {...}       
        updateQuery: (previous, { subscriptionData }) => {
          ...
        },
        onError: err => {
          console.log({ err })
        },
      })

@goldo exactement, ce modèle ne s'adapte pas bien lorsque vous voulez vraiment tout enregistrer, d'où le lien d'erreur!

Ce que je trouve déroutant dans la doc, c'est ce code :

const withDataAndErrors = graphql(MY_MIXED_QUERY, {
  options: {
    errorPolicy: 'all'
  }
});

La politique d'erreur par requête a-t-elle un impact sur la façon dont onError() reçoit ses messages ? Ou peut-être y a-t-il de nouveaux paramètres dans GraphQL-Tools/Apollo Server pour activer la journalisation des erreurs ?

@tim-soft est-il possible que la bibliothèque fetch que vous utilisez traite le statut HTTP 400 comme une erreur réseau ? J'ai rencontré quelques modules de récupération comme celui-ci.

Des progrès à ce sujet ?

Cette page vous a été utile?
0 / 5 - 0 notes