Запрос с помощью apollo-link-state дает ошибку «Поле <name> не существует для типа 'Query'»

Я новичок как в Apollo, так и в GraphQL. Я слежу за это apollo-link-state-tutorial и натыкаюсь на камень преткновения.

Я установил свою ссылку со свойством currentGame по умолчанию.

const stateLink = withClientState({
  cache: stateCache,
  defaults: {
    currentGame: {
      __typename: 'currentGame',
      teamAScore: 0
    }
  }
})

Я использую его в своем клиенте.

const client = new ApolloClient({
  stateCache,
  link: stateLink,
  ...
})

Я определяю запрос GraphQL следующим образом:

const getCurrentGame = gql`
  query {
    currentGame @client {
      teamAScore
    }
  }
`

Я подключаю его к реквизитам моего компонента.

export default compose(
  graphql(getCurrentGame, {
    props: ({ data: { currentGame }}) => ({
      currentGame
    })
  })
)

Это вызывает ошибку в консоли.

[GraphQL error]: Message: Field 'currentGame' doesn't exist on type 'Query', Location: [object Object], Path: undefined

Я просмотрел свой код и не смог определить, что, безусловно, является опечаткой или простой ошибкой. Как я могу отладить это сообщение об ошибке или в чем его проблема?


Обновлять: Я попытался добавить распознаватель, как предложил Tal Z, но все еще получаю то же сообщение об ошибке.

const stateCache = new InMemoryCache()
const stateLink = withClientState({
  cache: stateCache,
  resolvers: {
    Query: {
      currentGame: () => {
        return {}
      }
    }
  },
  defaults: defaultState
})

Как бы то ни было, в большинстве из немногих примеров репозиториев, которые я нашел, есть запросы для полей, для которых не определены преобразователи. Например, это запросы для элементов списка дел, но единственный определенный преобразователь предназначен для мутации.

Вы пробовали использовать fetchPolicy: 'network-only' в качестве одного из вариантов запроса?

Tal Z 09.04.2018 17:51

Я не видел этого варианта, я просто попробовал его только для сети и только для кеша, и он не дал никакого эффекта.

tnunamak 09.04.2018 18:07

Можете ли вы добавить свою конфигурацию apolloClient?

Alessander França 28.06.2018 14:01
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
787
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ну, разобрался ... это ломается:

import ApolloClient from 'apollo-boost'

Это работает:

import ApolloClient from 'apollo-client'

Понятия не имею, в чем разница.

apollo-boost еще не пробовал. Ваш опыт может избавить меня от разочарования во время попытки. Спасибо!

Tal Z 10.04.2018 10:42

Нет, спасибо за попытку, я еще не слышал о fetchPolicy, так что это тоже было здорово!

tnunamak 10.04.2018 22:39

Другие вопросы по теме