reactjs - 如何更新 useSubscription Hook 中的订阅变量 - Apollo v3

标签 reactjs graphql react-hooks apollo

我目前正在尝试在 useEffect Hook 中使用来自 apollo v3 的 useSubscription Hook 更新 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 文档中找到有关如何解决此问题的任何解决方案。

如有任何帮助,我们将不胜感激!

最佳答案

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

关于reactjs - 如何更新 useSubscription Hook 中的订阅变量 - Apollo v3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60575891/

相关文章:

node.js - 使用 makeAugmentedSchema 时必须提供 typeDefs

reactjs - 为什么设置一个状态会影响另一个状态?

reactjs - `useEffect` 的预期返回是用来做什么的?

javascript - 在 React-Admin 中显示一个数组

javascript - 有没有办法在 react-native 中流式传输视频?

reactjs - React Apollo 从状态动态创建查询

node.js - 多个 socket.io 服务器共享单个 HTTP/S 服务器

javascript - useEffect 清理中的执行顺序

javascript - 有没有办法访问导入组件的 propTypes 和 defaultProps?

javascript - OnSubmit 函数不会更新 React 中的 React hook 状态变量