0

任何从gatsby-source-prismic 跳转gatsby-source-prismic-graphql并知道查询结构和命名是否相同的人。

例如,我目前正在为gatsby-source-prismic使用类似下面的内容。

  export const query = graphql`
    query pageQuery($uid: String!) {
      page: prismicPageTemplate(uid: { eq: $uid }) {
        uid
        type
        data {
          title
          body {
            ... on PrismicPageTemplateBodyQuestionSlice {
              slice_type
              primary {
                name
                title {
                  html
                  text
                }
              }
            }
         }
      }
    }
}

我已经阅读了这两个插件的文档,并且还看到其他人提出了类似的问题。gatsby-source-prismic的文档将其作为命名约定

所有文档都从您的存储库中提取并创建为 prismic${contentTypeName} 和 allPrismic${contentTypeName},其中 ${contentTypeName} 是文档内容类型的 API ID。

如果我想切换到 gatsby-source-prismic-graphql 或者他们是否使用相同的命名约定,我是否必须重新编写所有查询?

4

2 回答 2

1

我注意到的唯一区别是使用gatsby-source-prismic-graphql进行的查询在查询的开头添加了一个“棱镜”字段。例如。

{
  prismic {
    allHomepages {
      edges {
        node {
          title
          description
        }
      }
    }
  }
} 

而对于gatsby-source-prismic,该字段不可用。这只是第一种方法,进行简单的查询。我不知道是否更复杂,那些深入文档(用于调用切片或链接字段)查询彼此相似甚至更多不同。所以这将是我的第一个猜测。

于 2019-10-08T10:48:17.370 回答
0

这是查询的更复杂版本。我添加了查询名称和两个切片:

query MyHomeQuery {
  prismic {
    allHomepages {
      edges {
        node {
         title
         description
          body {
            ... on PRISMIC_HomeBodyText {
              type
              label
            }
            ... on PRISMIC_HomeBodyImage_with_caption {
              type
              label
            }
          }
        }
      }
    }
  }
}

你是对的。gatsby-source-prismic中的名称将是allPrismicHomePage

于 2019-10-09T13:04:22.747 回答