【问题标题】:How do I update subscription variables in a useSubscription hook - Apollo v3如何在 useSubscription 挂钩中更新订阅变量 - Apollo v3
【发布时间】:2020-06-19 21:17:32
【问题描述】:

我目前正在尝试在 useEffect 挂钩中使用来自 apollo v3 的 useSubscription 挂钩更新 GraphQL 订阅:

let containerSubscription = useSubscription<CreatedDateSubscription, CreatedDateSubscriptionVariables>(
  gql(containerUpdatedOnCreatedDate),
  {
    variables: { createdDate: selectedDate },
    shouldResubscribe: true, // is this needed?
  },
);

// update subscription on date change
React.useEffect(() => {
  // how do I update the subscription here?
  // setting containerSubscription.variables = ... does not change the subscription
}, [selectedDate]);

我在 apollo 文档中找不到有关如何解决此问题的任何解决方案。

任何帮助将不胜感激!

【问题讨论】:

  • 也许你不应该这样做,我也没有找到任何文档,也许是因为你需要取消订阅并重新订阅新变量
  • @Arman 谢谢你,我想到了。但是,我可以在文档中找到有关如何取消订阅和重新订阅的任何文档

标签: reactjs graphql react-hooks apollo


【解决方案1】:

无需使用useEffect——您只需更改selectedDate。如果传递给钩子的任何选项发生变化,当前订阅将被取消订阅,并使用新选项开始新的订阅。

【讨论】:

  • 没想到,谢谢!当我省略 shouldResubscribe 选项时,它终于起作用了
猜你喜欢
  • 2020-07-24
  • 2020-08-17
  • 2019-09-14
  • 2016-04-27
  • 2020-03-04
  • 2017-11-28
  • 2016-09-04
  • 2018-05-12
  • 2016-06-07
相关资源
最近更新 更多