как отписаться с помощью useQuery и подписаться ToMore - PullRequest
5 голосов
/ 04 марта 2020

Другой пост поделился примером того, как отписаться, где Apollo docs нет. Документы Apollo упоминают о том, что возвращает subscribeToMore ...

subscribeToMore: функция, которая устанавливает подписку. subscribeToMore возвращает функцию, которую можно использовать для отмены подписки.

Это дает подсказку. Было бы полезно увидеть пример.

вопрос

Использование @apollo/react-hooks внутри useEffect() и возвращение результатов subscribeToMore, это способ отказаться от подписки на размонтировать компонент?

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

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

1 Ответ

4 голосов
/ 04 марта 2020

Любые связанные подписки должны быть отписаны для вас, когда компонент отключается. Вам не нужно управлять им вручную, если вы не хотите отменить подписку до этого момента.

Вы можете увидеть отслеживание подписки, когда subscribeToMore здесь здесь , а затем отписаться, когда запрос очищается здесь .

...