reactjs - 如何使用 useQuery 和 subscribeToMore 取消订阅

标签 reactjs apollo apollo-client

Another post分享了如何取消订阅的示例,其中Apollo docs不。 Apollo 文档确实提到了 subscribeToMore 返回的内容......

subscribeToMore: A function that sets up a subscription. subscribeToMore returns a function that you can use to unsubscribe.

这确实给出了提示。看一个例子会有所帮助。

问题

useEffect()内部使用@apollo/react-hooks并返回subscribeToMore的结果,是这样的吗取消订阅组件卸载?

const { data, error, loading, subscribeToMore } = useQuery(GET_DATA)

useEffect(() => {
    const unsubscribe = subscribeToMore(/*...*/)
    return () => unsubscribe();
}, [])

最佳答案

卸载组件时,应为您取消订阅任何关联的订阅。您不必手动管理它,除非您想在此之前取消订阅。

当调用 subscribeToMore 时,您可以看到正在跟踪的订阅 here然后在清理查询时取消订阅 here .

关于reactjs - 如何使用 useQuery 和 subscribeToMore 取消订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60515463/

相关文章:

javascript - 在没有 webpack 或 browserify 的情况下使用带有 CDN 的 React Router

javascript - 在 html select 中获取当前选定的选项 onBlur

javascript - 与 apollo-server 的 Websocket 连接返回乱码的 connectionParams

reactjs - Apollo Client 和 React Redux-Toolkit 应该如何进行状态管理?

javascript - 对具有多个条件的对象进行排序

javascript - react native : Opening push notification opens app but does not navigate to related content

swift - 如何从 Apollo iOS Closure 中获取值(value)?/How to "wrap"a closure in a function?

Apollo GraphQL 客户端 : how to distinguish an optimistic response from a real response into a watchQuery

ios - 设置默认缓存策略 apollo swift

javascript - Apollo Client 将具有相同 id 和不同值的对象数组替换为第一个对象的副本数组