【问题标题】:ApolloGraphQL: useSubscription Hook Syntax with onSubscriptionData?ApolloGraphQL:使用订阅挂钩语法和 onSubscriptionData?
【发布时间】:2020-08-24 18:55:57
【问题描述】:

我正在尝试构建一个使用 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 挂钩的正确方法是什么?

【问题讨论】:

  • 不清楚你在问什么。你问文档中提到的OnSubscriptionDataOptions 类型是什么?
  • 感谢您的回复。我想获得一个代码示例,显示在 useSubscription 钩子中使用 onSubscriptionData 的语法。如果代码示例可以包含OnSubscriptionDataOptions,那就太好了。

标签: apollo react-apollo apollo-client


【解决方案1】:

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
    }
  },  
)

【讨论】:

  • 我可以在另一个 API 调用之后调用订阅吗?我想要的是,一旦我从另一个 API 调用中获得特定值,我需要调用订阅
  • 你能在这里回答我的问题吗stackoverflow.com/questions/67710167/…
猜你喜欢
  • 2020-08-17
  • 2019-08-26
  • 2018-05-12
  • 2016-04-27
  • 2017-09-17
  • 2016-06-07
  • 2019-02-02
  • 2017-03-21
  • 1970-01-01
相关资源
最近更新 更多