如何在useSubscription挂钩中更新订阅变量-Apollo v3

时间:2020-03-07 08:53:21

标签: reactjs graphql react-hooks apollo

我目前正在尝试使用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文档中找不到有关如何解决此问题的任何解决方案。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

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