javascript – “connectionArgs”Relay js的附加参数

例如,我有连接类型:

let usersType = new GraphQLObjectType({
    name: 'Users',
    description: 'users array',
    fields: () => ({
        array: {
            type: userConnection,
            description: 'all users',
            args: connectionArgs,
            searchFor: {
                type: GraphQLString
            },
            resolve: (root, args) => {
                return connectionFromArray(get(), args);
            }
        }
    })
});

在这种情况下,在查询中我只能指定(first,last,after,before)参数,但是如果我需要传递一些额外的参数,如userName等,那该怎么办呢?

基本上我需要这样的东西:

query {
    array (first: 1, userName: "name")
}

在用户类型我可以处理如下请求:

resolve: (root, args) => connectionFromArray(get(args.userName), args.args)

解决方法:

是的,有可能,您只需要使用新参数扩展relay helper connectionArgs,如下所示:

args: {
   ...connectionArgs,
   searchFor: { type: GraphQLString }
}

然后在resolve函数中访问它:

resolve: (root, args) => {
   // if the field argument 'searchFor' exists
   if (args.searchFor) {
   ...
   }
   ...
}
上一篇:Graphql基础知识整理


下一篇:Graphql-Java快速入门指导