ApolloGraphQL:使用带有 onSubscriptionData 的订阅挂钩语法?

ApolloGraphQL: useSubscription Hook Syntax with onSubscriptionData?

我正在尝试构建一个使用 onSubscriptionData.

的 Apollo useSubscription 挂钩

我看过 in the Apollo docs, 但我还没有示例。

例如类似于:

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

这还不太对,因为它不包括 Apollo 文档中提到的 OnSubscriptionDataOptions<TData>

构建使用 onSubscriptionDatauseSubscription 挂钩的正确方法是什么?

onSubscriptionData 函数传递一个类型为 OnSubscriptionDataOptions 的单个 options 参数。 options 对象有两个属性:

  • client -- 用于查询服务器的ApolloClient实例
  • subscriptionData -- 具有以下属性的对象:loadingdataerror

用法示例:

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