首页 > 解决方案 > GraphQL:变量由匿名查询使用但未声明

问题描述

我是 GraphQL 的新手。我有一个查询,但它显示“变量被匿名查询使用但未声明”的错误消息。

{
   "query":"{customers(first: 1, query: $input) {edges{node {addresses{ id }}}}}",
   "variables":{
      "input":{
         "id":"gid://shopify/Customer/5044061470926"
      }
   }
}

我可以得到一些帮助我做错了什么吗?

谢谢!

标签: graphql

解决方案


错误是正确的。您的查询是

{
  customers(first: 1, query: $input) {
    edges{
      node {
        addresses{ 
          id 
        }
      }
    }
  }
}

并且$input确实没有声明,所以 GraphQL 不知道它应该是什么,也不知道如何将它与你的variables值联系起来。

你需要做

query ($input: <THE_TYPE>!) {
  customers(first: 1, query: $input) {
    edges{
      node {
        addresses{ 
          id 
        }
      }
    }
  }
}

我不知道您的 API 架构,因此您必须替换<THE_TYPE>为您的 API 架构中定义的任何类型。


推荐阅读