我有一个名为ProfileQuery的查询:
const ProfileQuery = {
description: 'Profile',
type: UserType,
args: {
argOne: {
type: GraphQLString,
},
},
resolve: (
root
) => getProfile(),
我有一个名为: UserType 的类型,我希望能够访问子类型中的参数。
UserType -> SettingsType.requiresVerification
我在 UserType :
中有以下字段settings: {
type: SettingsType, // I want to access the args from the Profile query in here?!
resolve: async (
requestedUser,
args,
{ rootValue: { request: { user } } }
) => getAllSettings(user.id),
},
但是当我在 SettingsType 中记录args时,它们是空的。
如何将参数从ProfileQuery传递到SettingsType?
答案 0 :(得分:0)
我已经搜索了很长时间,但是找不到解决该问题的默认方法。我现在的解决方案是将args附加到父级。
这是一个示例,您将在其中检索用户和消息列表,并将其应用于消息列表并对其进行偏移和限制:
Query: {
user: async (parent, { id, offset, limit }, { models }) => {
const user = await models.User.findByPk(id);
user.offset = offset; // Attach arg here
user.limit = limit; // Attach arg here
return user;
},
},
User: {
messages: async (user, args, { models }) => {
return await models.Message.findAll({
offset: user.offset, // Retrieve arg here
limit: user.limit, // Retrieve arg here
where: {
userId: user.id,
},
});
},
}
语法与您的语法不完全相同,但是您可以理解。并且应该进一步检查这些属性是否存在。有点惊讶的是,没有一种简单的方法可以做到这一点(或者至少是一种在视觉上更简单的方法)!
希望这可以帮助其他偷窥狂!