Jes*_*sus 17 node.js graphql-js apollo-server
这是我的代码
模式
gql`
type Query {
user: X!
}
type User {
name: String!
}
type Time {
age: Int!
}
union X = User | Time
`;
Run Code Online (Sandbox Code Playgroud)
解析器
{
X: {
__resolveType: obj => {
if (obj.name) return { name: "Amasia" };
if (obj.age) return { age: 70 };
return null;
}
},
Query: {
user: () => {
return {
name: "Amasia"
};
}
}
}
Run Code Online (Sandbox Code Playgroud)
要求
query {
user{
... on User {
name
}
... on Time {
age
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我提出请求时,我得到错误
“抽象类型 X 必须在运行时解析为字段 Query.user 的对象类型,值为 { name: \"Amasia\" },收到 \"{ name: \"Amasia\" }\"。X 类型应该提供\"resolveType\" 函数或每个可能的类型都应该提供一个 \"isTypeOf\" 函数。"
是什么原因。?
Dan*_*den 14
该resolveType函数应返回一个字符串,其中包含抽象类型应解析为的具体类型的名称。您正在返回一个对象,而不是字符串。在这种情况下,您应该返回"User"或"Time"。
| 归档时间: |
|
| 查看次数: |
5669 次 |
| 最近记录: |