#graphql #gatsby #prismic.io
#graphql #gatsby #prismic.io
Вопрос:
Я использую localhost: 8000 / ___ отладчик graphq и gatsby-source-prismic для возврата моих фрагментов из prismic cms. Я выполнил шаги в readme, и я получаю правильные имена типов с этим фрагментом:
{
prismicHomepage {
data {
body {
__typename
}
}
}
}
Моя проблема заключается в создании встроенного фрагмента:
{
prismicHomepage {
data {
body {
__typename
... on PrismicHomepageBodyText {
text {
html
}
}
}
}
}
}
После этого я получаю сообщение об ошибке:
{
"errors": [
{
"message": "Cannot query field "text" on type "PrismicHomepageBodyText".",
"locations": [
{
"line": 10,
"column": 11
}
]
}
]
}
Мои фрагменты имеют идентификатор API: text, и я создал единственный сайт, заполненный этими фрагментами.
У меня нет проблем с получением любого другого идентификатора API, так что же я забыл?
Ответ №1:
Проблема, по-видимому, связана с тем фактом, что в созданном вами фрагменте отсутствует основная часть.
Внутренние части фрагментов находятся либо в основной части, либо в полях (для повторяющихся элементов). Итак, ваш код должен выглядеть следующим образом:
{
prismicHomepage {
data {
body {
__typename
... on PrismicHomepageBodyText {
primary {
text {
html
}
}
}
}
}
}
}
Дополнительную информацию смотрите здесь:
https://prismic.io/docs/graphql/query-the-api/retrieve-slice-content