Я использую React и ApolloGraphQL в своем приложении.
Структура компонента выглядит следующим образом (уровень отступа указывает на родительский / дочерний компонент):
App
Menu
Description
ListFoodsContainer
NewFood
Когда NewFood добавляет После передачи на сервер (что она делает успешно), подписка работает правильно в GraphQL Playground.
Но когда я пытаюсь использовать хук useSubscription в компоненте ListFoodsContainer, код хука не срабатывает
useSubscription(FOOD_ADDED, {
onSubscriptionData: ({ subscriptionData }) => {
console.log('Hello from ListFoodsContainer')
}
})
(Обратите внимание, что проблема не в импорте: то же самое импорт и код перехвата работают в других компонентах, как мы узнаем)
Затем я пробую тот же хук с точно таким же кодом (исключая зарегистрированное сообщение) в следующих компонентах:
-App
-Menu
-Description
-NewFood
и консоль говорит
Hello from App
Hello from Menu
Hello from NewFood
Итак, из этого я делаю вывод, что ловушка useSubscription ТОЛЬКО РАБОТАЕТ в компоненте, который запускает подписку в первую очередь, и его родительских компонентах. , Это очень запутанно, потому что это не то, что предлагают документы
https://www.apollographql.com/docs/react/data/subscriptions/#usesubscription -hook
Может кто-нибудь либо подтвердить мой вывод, либо аннулировать его?