Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

189
Vistas
Unhandled GraphQL subscription error [Error: Cannot destructure property 'data' of 'undefined' as it is undefined.]

I try to use subscribeToMorefor my graphql query in react-native, but I get following issue:

ERROR: Unhandled GraphQL subscription error [Error: Cannot destructure property 'data' of 'undefined' as it is undefined.]

My subscription looks like

// MESSAGE_SUBSCRIPTION
import { gql } from '@apollo/client'

export const TOPIC_MESSAGE_SUBSCRIPTION = gql`
  subscription MessageSubscription($data: SubscriptionInput!) {
    messageSubscription(data: $data) {
      _id
      text
    }
  }
`

My Component

...
subscribeToMore({
  document: MESSAGE_SUBSCRIPTION,
  variables: {
    data: {
      _id: params._id,
    },
  },
  updateQuery: (prev, { subscriptionData }) => {
    if (!subscriptionData.data) return prev
    console.log(prev, subscriptionData)

    return prev
  },
})
...

When I try the subscriton in my playground everthing work fine.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

The configuration of my apolloClient where missing the websocket connection.

Also I need to add the authorization as param, to get it as conntext

const wsLink = new WebSocketLink({
  uri: Platform.select({
    ios: 'ws://localhost:4000/',
    android: 'ws://10.0.2.2:4000/',
  }),
  options: {
    reconnect: true,
    connectionParams: async () => {
      const result = await getToken()

      return {
        authorization: result ? `Bearer ${result.password}` : '',
      }
    },
  },
})

....


export const client = new ApolloClient({
  link: split(
    ({ query }) => {
      const definition = getMainDefinition(query)
      return (
        definition.kind === 'OperationDefinition' &&
        definition.operation === 'subscription'
      )
    },
    authLink.concat(wsLink as any),
    authLink.concat(httpLink as any)
  ),
  cache: new InMemoryCache(),
})
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda