Запрос Graphql для локального состояния с массивом в Apollo - PullRequest
0 голосов
/ 02 марта 2019

Я устанавливаю свойство в Apollo на сервере, и мне нужно запросить его на клиенте.

Я устанавливаю состояние локального состояния (упрощенный код, чтобы сделать его читаемым):

const Navigation = {
  __typename: 'Navigation',
  Links     : [
    {__typename: 'Link', to: '/test-layout-page', text: 'Go to Home'},
    {__typename: 'Link', to: '/test-layout-page', text: 'Go to Page'},
    {__typename: 'Link', to: '/test-layout-article', text: 'Go to Article'},
  ],
};

  const staticContent =  {
    Navigation: Navigation
  }

  const stateLink = withClientState({
    cache,
    defaults: {
        staticContent
      },
  });

  return new ApolloClient({
    link: ApolloLink.from([stateLink, link]),
    cache,
    ssrMode: ssr,
    connectToDevTools: !ssr && !prod,
  });

, затем на клиенте у меня есть запрос:

const GET_STATE = gql`
  {
    renderType @client,
    path @client,
    staticContent @client {
      Navigation {
        Links
      }
    }
  }
`;

Я получаю ошибку с Links:

Ошибка: отсутствует поле выбора для объекта типа Link, возвращаемое для поля запроса Ссылки

Мне нужен запрос gqlчтобы вернуть все элементы в массиве, я попытался указать поля,

const GET_STATE = gql`
  {
    renderType @client,
    path @client,
    staticContent @client {
      Navigation {
        Links {
          text,
          to
        }
      }
    }
  }
`;

, но получаю

Ошибка: ошибка сети: невозможно прочитать свойство 'Query' из неопределенного

1 Ответ

0 голосов
/ 03 марта 2019

Ошибка была в запросе graphql.Правильный запрос:

const GET_STATE = gql`
  {
    renderType @client,
    path @client,
    staticContent @client {
      Navigation @client {
        Links @client {
          to,
          text
        }
      }
    }
  }
`;
...