如何将请求的 graphQL 片段与 apollo 客户端合并

How to merge graphQL fragments for request with apollo client

我有以下类型并且:

union U = B|C|D

type A = { childs: U }

我与此片段一起使用,效果很好,apollo 客户端能够正确解析子对象

fragment A on A {
    childs {
        ...B
        ...C
        ...D
    }
}

当我将其转换为

fragment A on A {
    childs {
        U
    }
}

fragment U on U {
    ...B
    ...C
    ...D
}

apollo 客户端无法再解析子对象,所有对象都是空的,没有任何字段。有没有办法合并碎片?

首先我觉得你的转换可能有错别字? U 缺少 ...

fragment A on A {
    childs {
        ...U # here
    }
}

我想你也应该尝试使用 conditional fragments

fragment U on U {
    ... on B {
        ...B
    }
    ... on C {
        ...C
    }
    ... on D {
        ...D
    }
}