首页 > 解决方案 > GraphQL 查询中的变量

问题描述

我正在尝试将变量与 GraphQL 查询一起使用,但浏览器响应错误请求。

这是我的代码

return this.apollo.query({
      query: gql `query Project($projectId: String!){
        project( where: { id: $projectId } )
          {
            id
            initials
          }
      }`,
      variables: { projectId: pid },
      fetchPolicy: 'network-only'
  })

由于某种原因,它没有在查询中选择项目变量。当我用硬编码值替换变量时,它工作正常。你能帮我理解为什么吗?

标签: graphql

解决方案


代码的问题在于 $projectId 的数据类型。这是数据库中的实际 id(在我的例子中是 prisma)。所以我将代码更改为:

return this.apollo.query({
      query: gql `query Project($projectId: ID!){
        project( where: { id: $projectId } )
          {
            id
            initials
          }
      }`,
      variables: { projectId: pid },
      fetchPolicy: 'network-only'
  })

及其现在的工作。

我发现 graphql playground 非常有用,并且在屏幕底部提供了变量。这样你就可以更快地调试代码


推荐阅读