我目前正在尝试使用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文档中找不到有关如何解决此问题的任何解决方案。
任何帮助将不胜感激!
答案 0 :(得分:1)
无需使用useEffect
-您只需要更改selectedDate
。如果传递给挂钩的任何选项发生更改,则当前订阅将被取消订阅,并且将使用新选项开始新的订阅。