我有一个由均实现一个接口的类型组成的Union。当我尝试查询Union中的类型时,它可以工作,但是如果使用条件片段,则它不工作。 即
example(id: 1) {
/// This Works
... on ExampleType {
id
}
/// But this does not work
... on exampleInterface {
id
}
这是我的代码外观的一个示例,我简化了代码,因为它是一个很大的架构。
var exampleInterface = new GraphQLInterfaceType({
name: 'exampleInterface',
description: 'Interface',
fields: () => somefields
});
var ExampleType = new GraphQLObjectType({
name: 'Type 1',
description: 'example type 1',
interfaces: [exampleInterface],
isTypeOf: function(obj) {
return obj.semantic_type === 'Example1Type';
}
});
var UnionType = new GraphQLUnionType({
name: 'Union Type'
description: 'Example description',
types: [
ExampleType
]
});
var queryType = new GraphQlObjectType({
name: 'Query'
fields: () => {
example: field(UnionType, 'description', {
args: args,
resolve: someResolver
})
});
var OrigSchema = new GraphQLSchema({
query: queryType
});
var RootSchema = mergeSchemas({
schemas: [OrigSchema]
}
我读到问题可能与功能mergeSchemas有关。