При попытке получить фрагмент запроса появляется следующая ошибка:
"Вы используете простое (эвристическое) средство сопоставления фрагментов, но ваши запросы содержат типы объединения или интерфейса. Клиент Apollo не сможет точно отобразить фрагменты. Чтобы устранить эту ошибку, используйте IntrospectionFragmentMatcher
, как описано в документы: https://www.apollographql.com/docs/react/recipes/fragment-matching.html"
Это вызов, который вызывает ошибку.
const sourceData = cache.readFragment({
id: `${typename}:${idToAdd}`,
fragment: gql`
${sourceFragment}
`,
});
где sourceFragment равен
fragment series on PriceSeries {
id
title
description
commodity
region
location
isDiscontinued
order
}
Аполлон, похоже, классифицирует возвращаемое значение фрагмента как объединение или интерфейс. Я не думаю, что добавление IntrospectionFragmentMatcher должно быть необходимым, поскольку нам не нужны союзы или интерфейсы, хотя, возможно, я ошибаюсь. Добавление __typename
к фрагменту не помогло.
- Как мне удалить эту ошибку (может, мне просто не хватает синтаксиса gql для набора текста?)
- Означает ли использование фрагментов, что мы должны установить
IntrospectionFragmentMatcher
независимо .. (в документах говорится, что это нужно только when using fragments on interfaces or unions
, что нам не нужно)
- Является ли ошибка ошибкой, если я просто скрываю ошибку (она работает как есть, если вы ее игнорируете)
Обновление
ApolloClient создается следующим образом
client = new ApolloClient({
link: createLink('MY_URL', Apollo.fetch),
cache: new InMemoryCache(),
});