ApolloGraphQL: использовать синтаксис крючка подписки с onSubscriptionData? - PullRequest
0 голосов
/ 09 мая 2020

Я пытаюсь создать хук Apollo useSubscription, который использует onSubscriptionData.

Я просмотрел в документации Apollo, , но у меня еще нет примера .

Например, что-то вроде:

const { loading, error, data } = useSubscription(
    INCOMING_MESSAGES_SUBSCRIPTION_QUERY,
    {
        variables: {"localUserId": Meteor.userId()},
        onSubscriptionData: myFunctionThatRunsWhenSubscriptionDataArrives
    }
);

Это еще не может быть правильным, потому что он не включает OnSubscriptionDataOptions<TData>, который упоминается в документации Apollo.

Как правильно создать ловушку useSubscription, использующую onSubscriptionData?

1 Ответ

1 голос
/ 09 мая 2020

В функцию onSubscriptionData передается единственный параметр options типа OnSubscriptionDataOptions. У объекта options есть два свойства:

  • client - экземпляр ApolloClient, используемый для запроса сервера
  • subscriptionData - объект со следующими свойствами: loading, data, error

Пример использования:

const { loading, error, data } = useSubscription(
  INCOMING_MESSAGES_SUBSCRIPTION_QUERY,
  {
    variables: {"localUserId": Meteor.userId()},
    onSubscriptionData: ({ subscriptionData: { data } }) => {
      // do something with `data` here
    }
  },  
)
...