我一直在努力解决这个问题。我在Node.js中有一个非常简单的GraphQL实现,如下所示。
const UserType = new GraphQLObjectType({
name: 'User',
fields: () => ({
id: new GraphQLNonNull(GraphQLString),
username: new GraphQLNonNull(GraphQLString)
})
});
const QueryType = new GraphQLObjectType({
name: 'QueryType',
fields: () => {
user: {
type: UserType,
args: { id: { name: 'id', type: new GraphQLNonNull(GraphQLString) } },
resolve: (parent, args) => getUser(args.id)
}
})
});
const schema = new GraphQLSchema({
query: QueryType,
});
如果QueryType
的“用户”字段的“类型”是其他任何值(例如,GraphQLString
),则它起作用。但是,如果是UserType
,则会收到以下错误。
"Error: User.id field type must be Output Type but got: undefined."
堆栈跟踪不会指向任何有用的地方,而只会引到GraphQL模块本身。据我所知,这应该不是循环依赖问题,尽管我尝试对其进行处理以防万一。任何帮助将不胜感激,因为这让我发疯。