Проблема с возвратом призматических фрагментов с помощью gatsby-source-prismic

#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