Apollo GraphQL查询报变量未使用错误但运行正常问题咨询
问题原因与解决方案
错误出现的原因
你在查询操作的头部声明了变量$getPostId: ID!,但实际调用getPost字段时直接硬编码了id参数的字符串值,全程没有用到这个提前声明的变量,因此触发了GraphQL的静态语法校验提示。
查询能正常运行是因为:GraphQL执行请求时只校验你实际传入的参数是否匹配Schema要求,你硬编码的id符合ID!的类型要求,服务端可以正常解析处理并返回结果,变量未使用仅属于静态校验阶段的语法规范提示,不影响合法请求的执行。
消除错误的方案
有两种可选修改方式:
- 如果你不需要动态传参,就是要固定查询指定id的Post,直接删除头部的变量声明即可,修改后的查询语句如下:
query Query { getPost(id:"20c9b3ac-afe6-4faa-a3f9-e00ef1b38ccf") { title author id } }
- 如果你需要使用变量动态传参,把硬编码的id值替换为你声明的变量
$getPostId,同时在Apollo沙箱的Variables面板传入对应参数即可,修改后的查询语句如下:
query Query($getPostId: ID!) { getPost(id: $getPostId) { title author id } }
对应Variables面板的参数配置:
{ "getPostId": "20c9b3ac-afe6-4faa-a3f9-e00ef1b38ccf" }
内容的提问来源于stack exchange,提问作者eest
相关产品推荐
相关产品推荐

