Apollo-link: TypeError: meneruskan bukan fungsi @apollo/[email protected], @apollo/[email protected]

Dibuat pada 11 Feb 2020  ·  3Komentar  ·  Sumber: apollographql/apollo-link

Perilaku yang Diharapkan
Saat menggunakan onError() dari @apollo/link-error kami tidak mendapatkan kesalahan atas permintaan GraphQL.

Perilaku Sebenarnya

Dep:

"dependencies": {
    "@apollo/client": "^3.0.0-beta.34",
    "@apollo/link-error": "2.0.0-beta.3",

Mempersiapkan:

import {
  ApolloClient,
  ApolloProvider,
  InMemoryCache,
} from '@apollo/client';
import { onError } from '@apollo/link-error';

const apolloClient = new ApolloClient({
  uri: '/graphql',
  // rehydration using the initial state
  cache: new InMemoryCache().restore(apolloState),

  link: onError(({ graphQLErrors, networkError }) => {
    console.log(graphQLErrors, networkError);
  }),
});

Saat berinteraksi dengan komponen yang membuat permintaan GraphQL, sayangnya hanya ini yang saya dapatkan.
Screen Shot 2020-02-11 at 10 28 41 AM
Melanggar pengecualian, saya mendapatkan ini di bundel saya:
Screen Shot 2020-02-11 at 10 36 34 AM
Screen Shot 2020-02-11 at 10 38 48 AM

Reproduksi _sederhana_
Saya mencoba mengatur Codesanbox, tetapi gagal untuk AC 3.0 dengan masalah ketergantungan samar:
https://codesandbox.io/s/apolloclient-3-local-state-management-before-reactive-variables-nr1kg

Komentar yang paling membantu

Saya mendapatkan kesalahan ini ketika networkError terjadi dengan apollo-link-context , apollo-link-error , dan apollo-link-http :

import { ApolloClient } from 'apollo-client'
import { HttpLink } from 'apollo-link-http'
import { setContext } from 'apollo-link-context'
import { onError } from 'apollo-link-error'
import { InMemoryCache } from 'apollo-cache-inmemory'

const httpLink = new HttpLink({
  uri: // my api URI
})

const authLink = setContext((_, { headers }) => {
  // my authorization stuff
})

const errorLink = onError(({ graphQLErrors, networkError }) => {
  // my error handling logic
})

const apolloClient = new ApolloClient({
  link: authLink.concat(errorLink, httpLink),
  cache: new InMemoryCache()
})

Semua 3 komentar

Saya mengalami masalah yang sama saat memutakhirkan ke beta.

Sepertinya itu hilang jika HttpLink disertakan alih-alih penggunaan uri langsung.
Jadi mungkin lib salah mengharapkan untuk selalu memiliki item berikutnya dalam rantai dan fungsi forward hadir?

Saya mendapatkan kesalahan ini ketika networkError terjadi dengan apollo-link-context , apollo-link-error , dan apollo-link-http :

import { ApolloClient } from 'apollo-client'
import { HttpLink } from 'apollo-link-http'
import { setContext } from 'apollo-link-context'
import { onError } from 'apollo-link-error'
import { InMemoryCache } from 'apollo-cache-inmemory'

const httpLink = new HttpLink({
  uri: // my api URI
})

const authLink = setContext((_, { headers }) => {
  // my authorization stuff
})

const errorLink = onError(({ graphQLErrors, networkError }) => {
  // my error handling logic
})

const apolloClient = new ApolloClient({
  link: authLink.concat(errorLink, httpLink),
  cache: new InMemoryCache()
})

[diedit] Adakah pembaruan tentang ini? Saya menggunakan versi RC dan masih mendapatkan kesalahan yang sama tanpa HTTPLINK

        "@apollo/client": "^3.0.0-rc.10",
        "@apollo/link-batch-http": "^2.0.0-beta.3",
        "@apollo/link-context": "^2.0.0-beta.3",
        "@apollo/link-error": "^2.0.0-beta.3",
        "@apollo/link-retry": "^2.0.0-beta.3",

Tetapi untuk membuka blokir, ini berfungsi untuk saya

    const link = from([ authLink, logoutLink,  new HttpLink({ uri }) ]);
    return new ApolloClient({
        name: APOLLO_CLIENT_NAME,
        version: config.appVersion,
        connectToDevTools: true,
        link,
        cache
    });
Apakah halaman ini membantu?
0 / 5 - 0 peringkat