Apollo GraphQL查询用其他查询覆盖子元素数组

Apollo GraphQL查询用其他查询覆盖子元素数组,graphql,react-apollo,apollo-client,Graphql,React Apollo,Apollo Client,我有两个查询获取公司的类别类型。 员工查询包括数据库中公司查询类型的一个子集。 如果我只是查询employee查询,employee types数组包含2个元素。 如果我只是查询company查询,company types数组包含4个元素。 好。。 但是如果我同时查询这两个元素,employee的types数组就会更新,并突然包含4个元素,而不是2个 query GetEmployee ($id: ID!) { employee (id: $id) { id, companyTaskC

我有两个查询获取公司的类别类型。 员工查询包括数据库中公司查询类型的一个子集。 如果我只是查询employee查询,employee types数组包含2个元素。 如果我只是查询company查询,company types数组包含4个元素。 好。。 但是如果我同时查询这两个元素,employee的types数组就会更新,并突然包含4个元素,而不是2个

query GetEmployee ($id: ID!) {
employee (id: $id) {
  id,
  companyTaskCategories{
      id,
      title,
      color,
      archived,
      types(restrictEmployee: true)  {
        id,
        title,
        archived,
      }
  }
}


query company {
company {
  id,
  taskCategories {
    id,
    title,
    color,
    archived,
    types(restrictEmployee: false) {
      id,
      title,
      archived,
    }
  }
}

}

不确定您是如何实现解析器功能的,但如果您想运行两个查询并获得独立的结果,请使用变体,因为它将确保您的查询不会在后端创建竞争条件

因此,请使用变异按顺序获取数据

如中所述

当查询字段并行执行时,变异字段在 系列,一个接一个


实际上,问题是apollo合并了types子元素的响应,但employee类型是company types数组的过滤子集。Apollo假定已添加元素并自动覆盖整个employee types数组。通过从公司调用中添加新元素,不仅更新了现有元素,而且整个数组长度也发生了变化