根据变量的长度多次进行突变调用

Posted

技术标签:

【中文标题】根据变量的长度多次进行突变调用【英文标题】:Make a mutation call multiple times depending on length of variable 【发布时间】:2020-02-14 20:41:36 【问题描述】:

有没有办法让我从前端多次调用突变?我有一组用户需要添加到应用程序中,而突变目前只允许一次添加一个用户(我们可以更改突变,但他们想看看我是否可以先在前端进行批处理)。

这是我目前的突变:

export const SHARE_APP = gql`
  mutation ShareApp(
    $appId: String!
    $userId: String!
  ) 
    shareApp(
      appId: $appId
      userId: $userId
    ) 
      updatedApp 
        id
      
    
  
`;

这可以在前端完成还是我需要更改 gql 代码以接受 id 数组?

【问题讨论】:

【参考方案1】:

Mutation 组件、useMutation 钩子和graphql HOC 都为您提供了一种可以多次使用的方法。

const [share] = useMutation(SHARE_APP)
await Promise.all(appIds.map((appId) => share(
  variables: 
    userId,
    appId,
  ,
)))

批处理这些请求而言,Apollo 不支持开箱即用,因此您必须使用apollo-link-batch-http 之类的链接。

【讨论】:

以上是关于根据变量的长度多次进行突变调用的主要内容,如果未能解决你的问题,请参考以下文章

如何使用动态别名在单个请求中多次调用 GraphQL 突变

graphql 角度突变在控制台中显示“错误:网络错误:无法读取 null 的属性‘长度’”

在一个http请求中多次调用相同的GraphQL突变操作[重复]

多次对向量进行排序

c语言字符串的长度怎么看

GroovyGroovy 方法调用 ( 字符串切割 | 使用 Java 语法切割字符串 | 使用 Groovy 语法切割字符串直接为变量赋值 | 数组赋值给变量 变量个数小于等于数组长度 )