Another post共享了一个有关如何退订的示例,而Apollo docs则没有。 Apollo文档确实提到了subscribeToMore返回的内容...



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

问题

使用@apollo/react-hooks内的useEffect()并返回subscribeToMore的结果,这是退订组件卸载的方法吗?

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

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

最佳答案

卸载组件时,应为您取消所有关联的订阅的订阅。除非您要在此之前退订,否则不必手动进行管理。

您可以看到在将subscribeToMore称为here时正在跟踪预订,然后在清理查询here时取消预订。

10-01 10:03