ApolloGraphQL:使用onSubscriptionData的useSubscription挂钩语法吗?

时间:2020-05-09 05:43:03

标签: apollo react-apollo apollo-client

我正在尝试构建一个使用useSubscription的Apollo onSubscriptionData钩子。

我看过in the Apollo docs,,但还没有一个例子。

例如像这样:

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

那不可能是正确的,因为它不包含OnSubscriptionDataOptions<TData>,这在Apollo文档中已提到。

构建使用useSubscription的{​​{1}}挂钩的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

onSubscriptionData函数被传递单个options类型的OnSubscriptionDataOptions参数。 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
    }
  },  
)