Обнаружен вложенный выбор в запросе, но в магазине нет ссылки на объект. Apollo Link State - PullRequest
0 голосов
/ 08 октября 2018

Это мой основной запрос, чтобы получить все данные с сервера.

Query to get data from server

Затем я хотел бы установить это в состояние ссылки Apollo.

Чтобы установить в состояние ссылки, вот мой распознаватель.

resolver for link state

Это мой запрос клиента / кэша для получения предыдущего состояния кэша.

local client/cache query

Я не знаю, где мне что-то не хватает в этом.

ApolloError.js: 37 Uncaught (в обещании) Ошибка: сетевая ошибка: обнаружен вложенный выбор в запросе, но хранилище не имеет ссылки на объект.Это никогда не должно происходить во время обычного использования, если у вас нет собственного кода, который напрямую манипулирует хранилищем;Пожалуйста, отправьте вопрос.

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Эта ошибка может возникать из-за версии пакета apollo-cache-inmemory.Попробуйте обновить пакет до последней версии:

npm update apollo-cache-inmemory

Этот поток github пытается отследить проблему, и обновление пакета, похоже, работает нормально: https://github.com/apollographql/apollo-client/issues/4125

0 голосов
/ 05 декабря 2018

Вероятно, у вас есть настройка запроса для выборки вложенного объекта, но вы не запрашиваете ничего из этого вложенного объекта.

В этом примере hero имеет два свойства, имя типа string и ultimateAbility типа Ability.Ability имеет имя : string и время перезарядки : number.

Имея это в виду, следующее может дать вам эту ошибку, потому что мы запрашиваем ultimateAbility (наш вложенный объект), но мы не сообщаем графу, чего мы хотим от него:

{
  hero {
    name
    ultimateAbility
  }
}

Правильный подход - просто добавить, какие реквизиты вы хотите из ultimateAbility:

{
  hero {
    name
    ultimateAbility {
      name
    }
  }
}

Мое прошлое: я недавно прошел через это, и после того, как я перебрал множество PR, моя команда прибила к этому.

...