我已经设置了一个graphql架构,其中一个字段(' items')是一个Union类型的对象列表,即列表项可以是两种对象类型之一(在这种情况下)它们被称为“packageOfferItem'和”tileItem')。
var searchResultItemType = new graphql.GraphQLUnionType({
name: 'SearchResultItems',
types: [ packageOfferItem, tileItem ],
resolveType: function (value) {
if (value.type === 'packageOffer') {
return packageOfferItem;
} else if (value.type === 'tile') {
return tileItem;
} else {
return null;
}
}
});
var searchResultItemsType = new graphql.GraphQLList(searchResultItemType);
items
字段的类型为searchResultItemsType
。
在我的测试中,我有一个查询,要求使用符号来提交来自items
的数据:
{
items {
...on packageOfferItem {
id
}
}
}
在我的测试中,我收到错误[Error: Unknown type "packageOfferItem".] message: 'Unknown type "packageOfferItem".' } ]
这个错误来自哪里? packageOfferItem
是graphql NamedType
,因此我不明白为什么查询响应中存在错误。
对模式的反省不会抛出任何错误,因此模式本身在语法上是有效的。