带参数的阿波罗客户端查询 - Vue

Posted

技术标签:

【中文标题】带参数的阿波罗客户端查询 - Vue【英文标题】:apollo client query with params - Vue 【发布时间】:2020-07-26 10:45:51 【问题描述】:

Apollo 客户端的查询:

apolloClient
  .query(
    query: authQuery,
    variables: 
      login: payload.login,
      password: payload.password,
    ,
  )
  .then((res) => console.log(res)

authQuery 的内容(在 file.gql 中):

query auth 
  data

我总是得到以下响应:


  data: null
  loading: false
  networkStatus: 7
  stale: true

虽然在 graphiQL 中我得到了正确的响应:

在 GraphiQL 中查询


  auth(login:"root@admin", password:"1234")

然后回应:


  "data": 
    "auth": "eyJhbGciOi8"
  

我怀疑我的 file.gql 是罪魁祸首?或者查询中的变量没有被读取?

【问题讨论】:

您的查询不包含任何变量? 您可以在我的.query 中看到variables 【参考方案1】:

我必须以这种方式包装我的查询:

query Auth($login: String!, $password: String!) 
  auth (login: $login, password: $password)

当您在查询中使用参数时,您总是必须以这种方式包装它。

【讨论】:

以上是关于带参数的阿波罗客户端查询 - Vue的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有参数的情况下进行graphql突变? (Vue 阿波罗)

Apollo 客户端调用每个突变和查询两次(React)

GraphQL 角度阿波罗客户端。从缓存中读取抛出错误,但对服务器的相同查询工作正常

阿波罗客户端- [未处理的承诺拒绝:错误:响应不成功:收到状态代码 400]

阿波罗客户端在反应原生的初始重新加载中返回未定义

在查询中找到 @client 指令,但未指定 ApolloClient 解析器