【发布时间】:2021-01-25 23:33:53
【问题描述】:
我是 GraphQL 新手。我从 Javascript Apollo 库开始,无法启动解析器。我很难说什么时候应该调用解析器,以及我应该放什么键。
这是我的架构和解析器:
// The GraphQL schema in string form
const typeDefs = `
type Query { user(id: ID!): User, posts: Post }
type User { id: ID!, created: Int, username: String, bio: String, status: String, avatar: String, posts: [Post] }
type Post { id: ID!, created: Int, user_id: Int, text: String, object_set_id: Int, edited: Int, views: Int, upvotes: Int, downvotes: Int, Parent: Int }
`;
// The resolvers
const resolvers = {
Query: {
user: (parent, args, context, info) => {
return users.find(user => user.id === Number(args.id));
},
// posts: () => posts,
},
Post: {
id: (parent, args, context, info) => {
console.log(posts.filter(post => post.user_id === Number(parent.id)))
return posts.filter(post => post.user_id === Number(parent.id))
}
}
};
我想通过用户 ID 指定用户,然后向下过滤以获取该用户发布的所有帖子(最终使用时间过滤器)。
我尝试了几件事,但用户下的“帖子”总是出现“空”。我错过了什么?谢谢。
【问题讨论】:
-
...以及您正在关注的教程?
-
您的,已注释掉,
Query.posts解析器不返回帖子列表/数组,然后没有调用链接的Post解析器(它应该返回一篇帖子,当 Query.posts 返回所有帖子时不需要帖子字段) -
请告诉我们你的
users数组的值 -
那个
Post.id解析器没有意义,它需要返回一个ID!,但似乎返回一个帖子数组。你的意思是写一个User.posts解析器吗?
标签: javascript graphql apollo