Не удается сохранить результат запроса GraphQL - всегда неопределенный - PullRequest
0 голосов
/ 10 января 2019

Я делаю запрос и уже зарегистрировал результат. Все работает как надо, однако, когда я хочу продолжить работу с результатом, он всегда "неопределен" (см. 2-е ведение журнала). Я уверен, что упускаю что-то очевидное здесь, но очень хотел бы получить вашу помощь:)

render() {
let saved;
this.props.apolloClient
  .watchQuery<Query>({
    query: gql`
      query($id: ID!) {
        element(id: $id) {
          children {
            ... on TextNote {
              name
              description
              type
            }
          }
        }
      }
    `,
    variables: { id: 0 }
  })
  .subscribe(({ data: { element: { children } } }) => {
    console.log(children); // this is the wanted result
    saved = children;
  });

console.log("save");
console.log(saved);   // this is undefined for some reason

1 Ответ

0 голосов
/ 10 января 2019

Если children дает вам правильный результат, можете ли вы просто присвоить переменную saved функции this.props.apolloClient и вернуть дочерние элементы в вызове subscribe?

Что-то вроде:

 render() {
  const saved = this.props.apolloClient
  .watchQuery<Query>({
    query: gql`
      query($id: ID!) {
        element(id: $id) {
          children {
            ... on TextNote {
              name
              description
              type
            }
          }
        }
      }
    `,
    variables: { id: 0 }
  })
  .subscribe(({ data: { element: { children } } }) => {
    console.log(children); // this is the wanted result
    return children; // <-- return the value here
  });

console.log("save");
console.log(saved);   // <-- should have children assigned to saved
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...