Я пытаюсь добавить данные, возвращаемые из моих подписок, в глобальное состояние через свойство 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>
)
}