根据变量的长度多次调用突变
Make a mutation call multiple times depending on length of variable
有没有办法让我从前端多次调用一个突变?我有一组用户需要添加到应用程序中,而突变目前只允许一次添加一个用户(我们可以更改突变,但他们想看看我是否可以先在前端进行批处理)。
这是我当前的突变:
export const SHARE_APP = gql`
mutation ShareApp(
$appId: String!
$userId: String!
) {
shareApp(
appId: $appId
userId: $userId
) {
updatedApp {
id
}
}
}
`;
这可以在前端完成吗?还是我需要更改 gql 代码以接受 id 数组?
Mutation
组件、useMutation
钩子和graphql
HOC 都为您提供了一个可以多次使用的方法。
const [share] = useMutation(SHARE_APP)
await Promise.all(appIds.map((appId) => share({
variables: {
userId,
appId,
},
})))
就 批处理 这些请求而言,Apollo 不支持开箱即用,因此您必须使用像 apollo-link-batch-http 这样的 link。
有没有办法让我从前端多次调用一个突变?我有一组用户需要添加到应用程序中,而突变目前只允许一次添加一个用户(我们可以更改突变,但他们想看看我是否可以先在前端进行批处理)。
这是我当前的突变:
export const SHARE_APP = gql`
mutation ShareApp(
$appId: String!
$userId: String!
) {
shareApp(
appId: $appId
userId: $userId
) {
updatedApp {
id
}
}
}
`;
这可以在前端完成吗?还是我需要更改 gql 代码以接受 id 数组?
Mutation
组件、useMutation
钩子和graphql
HOC 都为您提供了一个可以多次使用的方法。
const [share] = useMutation(SHARE_APP)
await Promise.all(appIds.map((appId) => share({
variables: {
userId,
appId,
},
})))
就 批处理 这些请求而言,Apollo 不支持开箱即用,因此您必须使用像 apollo-link-batch-http 这样的 link。