Gatsby Graph-ql的子字段选择错误

时间:2020-04-04 06:45:28

标签: reactjs graphql gatsby

我想使用Gatsby来建立自己的网站。这是第一次使用graph-ql,我使用Gatsby提供的graph-ql ide进行了查询,以收集SiteMeatadata

  const data = useStaticQuery(graphql`
    query SiteInformationQuery {
      __typename
      site {
        siteMetadata {
          author {
            name
            summary
          }
          title
          description
        }
      }
    }
  `);

我预计它会返回

{
  "data": {
    "site": {
      "siteMetadata": {
        "title": "Gatsby Typewriter theme",
        "author": {
          "name": "dodok8",
          "summary" : "student"
        }
      }
    }
  }
}

但是它出错了。

 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Field "author" of type "SiteSiteMetadataAuthor" must have a selection of subfields. Did you mean "author { ... }"?

File: src\components\seo.js:21:13

但是我查询了author的所有子字段。我的子字段和查询语句出了什么问题?

这是存储在gatsby-config.js中的有关siteMetadata的原始数据。

module.exports = {
  siteMetadata: {
    title: `Gatsby Typewriter theme`,
    description: `Demo page of Gatsby Typewriter theme`,
    author: {
      name: 'dodok8',
      summary: 'student',
    },
  },

1 个答案:

答案 0 :(得分:1)

问题不在我写的查询中,基本查询在componets/seo.js中。如果您不编辑此文件,则在第13行有一个查询,

    graphql`
      query {
        site {
          siteMetadata {
            title
            description
            author
          }
        }
      }
    `
  );

在我的情况下,我向author添加了子字段,因此我应该将其更改为

    graphql`
      query {
        site {
          siteMetadata {
            title
            description
            author {
              name
              summary
            }
          }
        }
      }
    `
  );