我正在尝试构建一个使用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}}挂钩的正确方法是什么?
答案 0 :(得分:2)
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
}
},
)