我正在研究以下类型,其中“注释”的“内容”是联合类型:
type TextContent {
text: String
}
type RichContent {
participants: [String]
startTime: String
}
union Content = TextContent | RichContent
type Comment {
id: ID
sender: String
content: Content
}
type Review {
id: ID
title: String
lastComment: Comment
}
在我的Apollo查询中,我试图对2种内容类型使用条件片段:
query listOfReviews {
reviews {
...reviewFields
}
}
fragment reviewFields on Review {
id
title
lastComment {
content {
... on TextContent {
text
}
... on RichContent {
participants
startTime
}
}
}
}
我收到一个运行时错误,其中Apollo似乎试图访问“未定义”的“参与者”字段,其中实际的内容对象是:
{
__typename: "TextContent:,
text: "abc"
}
看起来两种类型的联合内容已合并在一起。
我的问题是:是否允许在Apollo查询中的嵌套字段上使用类型条件?还是必须在查询返回的顶级类型上使用类型条件?如果允许,我该如何解决我的类型/查询?
非常感谢!
答案 0 :(得分:0)
@ const86帮助指出这是由于以下错误:https://github.com/apollographql/apollo-link-state/pull/258。