【问题标题】:gatsby-source-prismic-graphql query structuregatsby-source-prismic-graphql 查询结构
【发布时间】:2020-02-05 05:12:56
【问题描述】:

任何从 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,我是否必须重新编写所有查询,或者他们是否使用相同的命名约定?

【问题讨论】:

    标签: graphql gatsby prismic.io


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢宝琳娜。我觉得切片可能会有所不同。我坚持改变,因为我的项目很大。如果您要添加切片,请告诉我结果如何。但这真的很有帮助,谢谢。
    • 我还从您的帖子中注意到 allHomepages 是不同的。这将是 gatsby-source-prismic 中的 allPrismicHomePage ?
    【解决方案2】:

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

    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

    【讨论】:

    • 谢谢@paulina,这很棒。我还看到他们使用 Snake case(或 snake_case)作为切片。 PRISMIC_ 哇,这意味着从 gatsby-source-prismic 在 Graphql 中重新编写查询。疯狂的!再次感谢您。
    猜你喜欢
    • 2019-09-20
    • 1970-01-01
    • 2019-10-26
    • 2019-04-02
    • 2020-09-21
    • 2019-08-03
    • 2020-02-03
    • 2020-07-25
    • 2020-11-14
    相关资源
    最近更新 更多