“对于具有值的字段 Query.user,抽象类型 X 必须在运行时解析为对象类型
"Abstract type X must resolve to an Object type at runtime for field Query.user with value
这是我的代码
架构
gql`
type Query {
user: X!
}
type User {
name: String!
}
type Time {
age: Int!
}
union X = User | Time
`;
解析器
{
X: {
__resolveType: obj => {
if (obj.name) return { name: "Amasia" };
if (obj.age) return { age: 70 };
return null;
}
},
Query: {
user: () => {
return {
name: "Amasia"
};
}
}
}
请求
query {
user{
... on User {
name
}
... on Time {
age
}
}
}
当我发出请求时我收到错误
"Abstract type X must resolve to an Object type at runtime for field Query.user with value { name: \"Amasia\" }, received \"{ name: \"Amasia\" }\". Either the X type should provide a \"resolveType\" function or each possible type should provide an \"isTypeOf\" function."
这是什么原因?
resolveType
函数应 return 一个字符串,其中包含抽象类型应解析为的具体类型的名称。您正在 returning 一个对象,而不是字符串。在这种情况下,您应该 return "User"
或 "Time"
.
这是我的代码
架构
gql`
type Query {
user: X!
}
type User {
name: String!
}
type Time {
age: Int!
}
union X = User | Time
`;
解析器
{
X: {
__resolveType: obj => {
if (obj.name) return { name: "Amasia" };
if (obj.age) return { age: 70 };
return null;
}
},
Query: {
user: () => {
return {
name: "Amasia"
};
}
}
}
请求
query {
user{
... on User {
name
}
... on Time {
age
}
}
}
当我发出请求时我收到错误
"Abstract type X must resolve to an Object type at runtime for field Query.user with value { name: \"Amasia\" }, received \"{ name: \"Amasia\" }\". Either the X type should provide a \"resolveType\" function or each possible type should provide an \"isTypeOf\" function."
这是什么原因?
resolveType
函数应 return 一个字符串,其中包含抽象类型应解析为的具体类型的名称。您正在 returning 一个对象,而不是字符串。在这种情况下,您应该 return "User"
或 "Time"
.