Apollo Mutation return 可以自定义结果对象吗?
Can an Apollo Mutation return a custom result object?
Apollo 突变 return 的结果通常是一个类型或一个类型的字段子集,这通常很好。所以我的突变:
const addUserMutation = gql`
mutation createUser($email: String!, $permissions: [CreatePermissionInput]) {
createUser(input: {email: $email, permissions: $permissions}) {
id
created
lastUpdated
uid
email
permissions {
who
...
}
}
}
`
哪个正在调用:
extend type Mutation {
createUser(input: CreateUserInput!): User
}
将return用户与列出的字段。
问题是,我想知道我们刚刚尝试创建的用户是否已经存在。那么如何编辑响应以包含此标志?你能不能有一个突变 return,比如说,一个像这样的对象:
{
exists: true,
user: { ... }
}
所以我可以这样做:
this.props.submit({
variables: {
email,
permissions,
},
}).then(({ result }) => {
console.log(result)
// > { exists: true, user: [USER OBJECT] }
})
我知道这会破坏自动缓存更新,但有时您需要更新的响应来告诉您更多信息。
为突变的 return 结果创建一个附加类型
type UserPayLoad {
exists:Boolean
user:User
}
extend type Mutation {
createUser(input: CreateUserInput!): UserPayLoad
}
试试这个。这可能对你有帮助
Apollo 突变 return 的结果通常是一个类型或一个类型的字段子集,这通常很好。所以我的突变:
const addUserMutation = gql`
mutation createUser($email: String!, $permissions: [CreatePermissionInput]) {
createUser(input: {email: $email, permissions: $permissions}) {
id
created
lastUpdated
uid
email
permissions {
who
...
}
}
}
`
哪个正在调用:
extend type Mutation {
createUser(input: CreateUserInput!): User
}
将return用户与列出的字段。
问题是,我想知道我们刚刚尝试创建的用户是否已经存在。那么如何编辑响应以包含此标志?你能不能有一个突变 return,比如说,一个像这样的对象:
{
exists: true,
user: { ... }
}
所以我可以这样做:
this.props.submit({
variables: {
email,
permissions,
},
}).then(({ result }) => {
console.log(result)
// > { exists: true, user: [USER OBJECT] }
})
我知道这会破坏自动缓存更新,但有时您需要更新的响应来告诉您更多信息。
为突变的 return 结果创建一个附加类型
type UserPayLoad {
exists:Boolean
user:User
}
extend type Mutation {
createUser(input: CreateUserInput!): UserPayLoad
}
试试这个。这可能对你有帮助