Хук useSubscription клиента Apollo работает только в компоненте (и его родителях), который запускает подписку? - PullRequest
0 голосов
/ 31 марта 2020

Я использую 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

Может кто-нибудь либо подтвердить мой вывод, либо аннулировать его?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...