假设我已经定义了一个这样的突变:
const [deleteItem, {data}] = useMutation(deleteItemMutation)
,然后在循环内重复调用deleteItem(id),有什么办法可以读取每个{data}
响应?突变被批量处理,并且响应是一个数组(我可以通过检查网络流量来看到)。但是,{data}
变量仅包含来自最后一批突变的响应。当然这是有道理的,但是我仍然会对所有这些结果感兴趣。知道我该怎么做吗?
我正在考虑将突变包装在另一个需要回调的函数中,我认为这可以解决问题。但是,有没有更简单的解决方案?
答案 0 :(得分:0)
钩子返回的mutate
函数返回一个Promise,它将用突变结果来解决。因此,尽管data
道具是为方便起见而由挂钩返回的,但无需使用必须使用的道具。
const items = ['a', 'b', 'c']
const results = await Promise.all(items.map(async (itemId) => {
const { data } = await deleteItem({ variables: { itemId } })
return data
}))
console.log(results[0].data)