как получить доступ к subscribeToMore при использовании ApolloClient.query () вручную на клике - PullRequest
0 голосов
/ 03 февраля 2019

У меня есть сценарий, когда я вызываю gql-запрос вручную, используя ApolloClient.query (), но есть вероятность, что я не получу подписку в данных результата ... автоматический запуск запроса при монтировании компонента работает нормально ...

есть идеи о том, как использовать подписку в режиме ручного запроса?

Это то, чего я пытаюсь достичь ...

this.props.client.query({ query:getPost, variables:{id:100} })
      .then(data => {
        this.subscription = data.data.subscribeToMore({
         // subscription code here...
        })
      })
      .catch(error => {
        console.log(error);
      });

позвольте мне объяснить сценарий ..

1) У меня есть форма запроса, поданная и отправленная, записи отправляются в БД, я получил _id ... и теперь жду подтверждения запроса на том же экране..

2) теперь кто-то другой на другом экране получил новую запись и просто нажал утвержденную кнопку, запись обновлена ​​в БД ..

3) теперь я хочу, чтобы утверждение отображалось наэкран ... все это должно происходить мгновенно ... или срок действия запроса истекает, скажем, через 1 минуту ...

теперь мой тест равен 3, как я могу получить обновление одобрения на том же экране ... нехочу использовать другой компонент .. recordAdd является calleчерез ApolloClient.query (), что мне нужно сделать после того, как AddRec успешно выполнен и получен _id, мне нужно установить на него подписку ... но он не работает, если я не запускаю в ComponentWillReceiveProps ()

...