【问题标题】:Multiple queries error in Gatsby "Multiple "root" queries found"Gatsby 中的多个查询错误“找到多个“根”查询”
【发布时间】:2021-02-05 21:50:42
【问题描述】:

通过本教程创建帖子模板(我在第 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 | }

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

我不会错位的。 :(提前谢谢!

【问题讨论】:

    标签: reactjs graphql gatsby root


    【解决方案1】:

    这里的错误信息其实很有帮助,但并没有完全接受。

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

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

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

    【讨论】:

      【解决方案2】:

      我刚刚在仅使用一个 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 | }
      

      【讨论】:

        【解决方案3】:

        我今天在 Gatsby 上遇到了同样的错误。使用了一个页面查询和一个静态查询,因此该消息有点误导。

        “当您在一个文件中使用两个页面/静态查询时,可能会发生这种情况”

        解决这个问题的方法是我追踪正在使用它的文件。其中一个在场,但请注意它在项目中没有以任何方式活跃。一旦它被删除,警报就消失了。因此,简而言之,即使该文件未在任何地方使用第二个相同的静态查询。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-09-06
          • 2018-06-16
          • 2021-07-16
          • 2020-08-17
          • 2021-05-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多