onSubsciptionData не дает вывода, используйте подписку, ApolloClient v2.6 - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь добавить данные, возвращаемые из моих подписок, в глобальное состояние через свойство onSubscriptionData в useSubscription. Несмотря на то, что новые данные добавляются на сервер и на них можно подписаться с помощью того же запроса graphql на платформе graphql-play, новые данные не выводятся на консоль. Сообщение об ошибке тоже не отображается.

Вот мой код, включая настройку apollo-client.

const httpLink = createHttpLink({
        uri: 'http://192.168.0.11:4000/',
      })

const wsLink = new WebSocketLink({
        uri: `ws://192.168.0.11:4000/`,
        options: {
          reconnect: true,
          connectionParams: {
            authToken: token,
          },
        },
      })

const authLink = setContext((_, { headers = {} }) => {
        if (token) {
          headers.authorization = `Bearer ${token}`
        }
        return { headers }
      })

const link = split(
        ({ query }) => {
          const definition = getMainDefinition(query)
          return (
            definition.kind === 'OperationDefinition' &&
            definition.operation === 'subscription'
          )
        },
        wsLink,
        httpLink
      )

const client = new ApolloClient({
        link: authLink.concat(link),
        cache,
      })

const RECEIVED_REQUESTS_SUBSCRIPTION = gql`
  subscription ReceivedRequests {
    receivedRequests {
      node {
        id
        accepted
        type
        note {
          title
        }
        user {
          username
        }
      }
    }
  }
`

const SubApp=()=>{
    useSubscription(RECEIVED_REQUESTS_SUBSCRIPTION, {
    skip: !token,
    onSubscriptionData: data => console.log(data),
  })

    return (
      <h1>Hi</h1>
    )
}

const App=()=>{
return (
      <ApolloProvider client={client}>
        <SubApp />
      </ApolloProvider>
    )
}
...