У меня есть безголовая Craft CMS, которая возвращает данные в мое приложение Nuxt js через конечную точку GraphQL через Apollo. У меня есть поле, которое может возвращать один из трех различных типов блоков: richText
, image
и pullQuote
.
Моя конечная точка GraphQL выглядит так:
query($section:[String], $slug:[String]) {
entries(section: $section, slug: $slug) {
id,
title,
uri,
... on blog_blog_Entry{
contentEngine{
__typename,
...on contentEngine_richText_BlockType{
__typename,
id,
richText
fontColor,
backgroundColor
}
...on contentEngine_image_BlockType{
__typename,
id,
backgroundColor,
imageWidth,
image {
id,
url
}
}
...on contentEngine_pullQuote_BlockType{
__typename,
id,
backgroundColor,
fontColor,
quote
}
}
}
}
}
Прекрасно возвращает данные , но я получаю эту ошибку при попытке использовать его в моем компоненте Nuxt:
Вы используете простой (heuristi c) механизм сопоставления фрагментов , но ваши запросы содержат типы объединения или интерфейса. Клиент Apollo не сможет точно отобразить фрагменты. Чтобы устранить эту ошибку go, используйте IntrospectionFragmentMatcher
, как описано в документации: https://www.apollographql.com/docs/react/advanced/fragments.html#fragment -matcher
Раздражает то, что эта документация приводит к 404. Я нашел несколько других билетов GitHub , которые ссылаются на эту ссылку, поэтому я не уверен, какие шаги я должен выполнить.
Я думаю, что мне нужно сделать, чтобы учить кеш памяти Аполлона. Поскольку мой ответ не так уж сложен, я думаю, что смогу сойти с рук Определение возможных типов вручную .
Я пробовал следующее, но не думаю, что понимаю, как для правильной настройки:
const cache = new InMemoryCache({
possibleTypes: {
contentEngine: [
"contentEngine_richText_BlockType",
"contentEngine_pullQuote_BlockType",
"contentEngine_image_BlockType"
],
},
});
Любая помощь в решении этой проблемы будет огромной помощью.
ВНИМАНИЕ: heuristi c продолжается сопоставление фрагментов!