Клиентский кеш Apollo перенаправляет с cacheRedirects на вложенные объекты без аргументов - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть вопрос о cacheRedirects.

У меня есть один компонент, который запрашивает информацию для входа в систему пользователя:

query LoggedIn {
    loggedIn {
      user {
        ...CurrentUser
      }
      accessToken:
      newLogin: Boolean
   }
}

Затем у меня есть другой автономный компонент, который отображает отдельный результати немного информации о его пользователе.Я использую следующий запрос, который будет полностью кэширован уже предыдущим, поэтому нам не нужно попадать в сеть:

query CurrentUser {
  currentUser {
    ...CurrentUser
  }
}

Однако я не уверен, как настроить cacheRedirects такчто я могу избежать ненужного сетевого запроса?Я видел примеры в Интернете и обнаружил, что в них все запросы имеют «args», но в моем запросе его нет, поскольку я поместил его в заголовок http, что означает args в currentUser: (_, args, {getCacheKey}) является нулевым.

const cache = new InMemoryCache({
    dataIdFromObject: (object: any) => {
      switch (object.__typename) {
          return object.username;
        default:
          return defaultDataIdFromObject(object);
      }
    },
    cacheRedirects: {
      Query: {
        currentUser: (_, args, { getCacheKey }) => {
          getCacheKey({ __typename: 'CurrentUser' });
        },
      },
    },
  });

Выше не работает.Спасибо!

...