Gatsby中的多个查询错误“找到了多个“根”查询”

时间:2020-10-22 20:00:06

标签: reactjs graphql gatsby root

要通过本教程创建帖子模板(我在第4部分中): https://www.joaopedro.cc/blog-com-gatsby-e-react-parte-4

但是在执行“ PostPage”查询时发生错误:

Multiple "root" queries found: "PostPage" and "PostPage".
Only the first ("PostPage") will be registered.

Instead of:

1 | query PostPage {
2 |   markdownRemark {
3 |     #...
4 |   }
5 | }
6 | 
7 | query PostPage {
8 |   markdownRemark {
9 |     #...
10 |   }
11 | }

Do:

1 | query postPageAndPostPage {
2 |   markdownRemark {
3 |     #...
4 |   }
5 |   markdownRemark {
6 |     #...
7 |   }
8 | }

我查看了类似问题的其他答案,从我的理解来看,这是一个区分大小写的问题,但是从我看来,一切看起来都是正确的。

我并没有错位。 :(预先感谢!

2 个答案:

答案 0 :(得分:1)

这里的错误消息实际上很有帮助,但是并不能完全解决问题。

问题在于您只能有一个查询,而您有多个。解决方案是在单个查询中查询所需的所有数据,而不是按照错误提示将其拆分为多个。

A,您正在尝试通过同一字段获取我想象的两个不同的数据集,默认情况下会给您另一个错误。但是这里有一个简单的解决方案:使用aliases对结果中的字段名称进行重复数据删除。

query PostPage {
  firstPost: markdownRemark {
    #...
  }
  secondPost: markdownRemark {
    #...
  }
}

答案 1 :(得分:0)

我刚刚在一个只使用了一个 StaticQuery 的 React 组件中遇到了同样的错误消息。此组件是从另一个项目复制过来的(在那里它可以正常工作,没有任何问题)。

<块引用>

我看过类似问题的其他答案,据我所知,这是一个区分大小写的问题...

这帮助我解决了这个问题——结果是 React 组件的名称和 StaticQuery 都不是正确的驼峰式命名(它们包含“SEO”——全部是大写字母)。

清除此部分后错误消息消失。我认为我分享了这个,因为我发现这个上下文中的错误消息令人困惑。

 ERROR #85910  GRAPHQL

Multiple "root" queries found: "SEOQuery" and "SEOQuery".
Only the first ("SEOQuery") will be registered.

Instead of:

   1 | query SEOQuery {
   2 |   site {
   3 |     #...
   4 |   }
   5 | }
   6 |
   7 | query SEOQuery {
   8 |   site {
   9 |     #...
  10 |   }
  11 | }

Do:

  1 | query seoQueryAndSeoQuery {
  2 |   site {
  3 |     #...
  4 |   }
  5 |   site {
  6 |     #...
  7 |   }
  8 | }