无法在 Apollo GraphQL 的查询中使用 @client @export 变量

Posted

技术标签:

【中文标题】无法在 Apollo GraphQL 的查询中使用 @client @export 变量【英文标题】:Unable to use @client @export variable in query in Apollo GraphQL 【发布时间】:2020-04-06 06:29:38 【问题描述】:

我只是想使用@client(本地缓存)变量作为我的 apollo 服务器的查询参数。文档引用了@export 指令 (https://www.apollographql.com/docs/react/data/local-state/#querying-local-state)

由于某种原因,我无法做类似的事情

export const GET_COMPANY_DATA = gql`
  query GetCompanyData($id: ID!, $name: STRING!) 
    group @client @export(as: "name")
    getCompanyData(id: $id) 
      company 
        groups(name: $name) 
          data
        
      
    
  
;

两个查询单独工作,例如:


  group @client

从本地缓存返回一个字符串

export const GET_COMPANY_DATA = gql`
  query GetCompanyData($id: ID!, $name: STRING!) 
    getCompanyData(id: $id) 
      company 
        groups(name: $name) 
          data
        
      
    
  
;

返回正确的对象类型

在文档中,他们展示了这个示例,没有参考架构:

const query = gql`
  query currentAuthorPostCount($authorId: Int!) 
    currentAuthorId @client @export(as: "authorId")
    postCount(authorId: $authorId) @client
  
`;

我做错了什么?我觉得我错过了一些基本概念......

【问题讨论】:

【参考方案1】:

我想通了;设置 apollo 客户端时,即使没有,也必须添加 resolvers 属性:

const client = new ApolloClient(
  cache,
  link: authLink.concat(httpLink),
  **resolvers: **
);

【讨论】:

以上是关于无法在 Apollo GraphQL 的查询中使用 @client @export 变量的主要内容,如果未能解决你的问题,请参考以下文章

从 ruby​​ gem 导出的 GraphQL 查询无法在 Xcode 项目上使用 Apollo 进行编译

无法将 GraphQL 查询从 Apollo 客户端发送到 Rails GraphQL 后端

无法在单个 GraphQL 查询中组合本地和远程数据(Next.js + Apollo)

使用 nuxt-apollo 时如何使用 GraphQL 查询?

Apollo GraphQL 变量查询

vue apollo 4 不返回 graphql 查询结果