Apollo GraphQL查询用其他查询覆盖子元素数组
我有两个查询获取公司的类别类型。 员工查询包括数据库中公司查询类型的一个子集。 如果我只是查询employee查询,employee types数组包含2个元素。 如果我只是查询company查询,company types数组包含4个元素。 好。。 但是如果我同时查询这两个元素,employee的types数组就会更新,并突然包含4个元素,而不是2个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
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数组。通过从公司调用中添加新元素,不仅更新了现有元素,而且整个数组长度也发生了变化