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

时间:2019-12-12 19:51:12

标签: graphql apollo react-apollo apollo-client apollo-server

我只是想使用@client(本地缓存)变量作为我的阿波罗服务器的查询参数。该文档引用@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 个答案:

答案 0 :(得分:0)

我知道了;设置apollo客户端时,即使没有任何内容,也必须添加resolvers属性:

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