Не удается найти ключ кэша в перенаправлении кэша - PullRequest
0 голосов
/ 12 декабря 2018

Когда я запускаю свое реагирующее нативное приложение, я не хочу запрашивать «все» для автономной работы.

Так что я

query all {
  groups {
    ...GroupF
  }

  persons {
    ...PersonF
  } 
}${PERSON_ITEM}${GROUP_ITEM}

PersonF и GroupF являются фрагментами.

В первом представлении есть список групп, каждый из которых может принадлежать группе.Когда пользователь нажимает на группу, запрос выглядит так:

persons($group: ID) {
  persons(group: $group) {
    ...PersonsF
  }
}${PERSON_ITEM}

Но мои cacheRedirects просто не отражают те же данные, что и возвращаемые.

Я знаю это, потому что я console.log outответ в моей обертке компонентов (здесь это выглядит отлично)

, но в моем

const cache = new InMemoryCache({
  cacheRedirects: {
    Query: {
      persons: (_, args, {getCacheKeys}) => {
       // I have tried everything here but nothing maps correctly
       // I have tried getCacheKey({__typename: 'Person', id: args.group})
       // I have tried following the apollo documentation
       // No luck, it just can't find the group
       // Using the chrome dev tools I don't see persons having groups
       const a = getCacheKey({__typename: 'Person', id: args.group});
       // Console.log(a) is:
       // {generated: false, id: "Person:9", type: "id", typename "Person"}
      }
    } 
  }
});

Есть ли у вас какие-либо предложения о том, как написать правильный кэш-запрос перенаправления пользователей?

Помощь действительно очень ценится

| 1 |https://www.apollographql.com/docs/react/advanced/caching.html#cacheRedirect

1 Ответ

0 голосов
/ 25 февраля 2019

Это было вызвано тем фактом, что мы использовали поле id в Person, так как мы прекратили использовать поле, оно прекрасно работает.

...