我有两个具有以下关系的模型:
群组有很多 的链接
所以基本上我的初始查询是getAllGroups,它获取所有组及其链接。 我有一个只是创建链接的变异,更新我的UI的最有效方法是什么?
目前我有:
{{1}}
基本上我只想获取添加了链接的组,但是我需要指定哪个组。我该怎么做?
答案 0 :(得分:0)
我已经弄明白了,在创建其他突变的同时,我发现了一些不同的解决方法:
选项1: 如果您可以访问缓存中当前模型的索引,则可以将其作为prop传递,然后在查询中使用它来定位已添加到的模型:
updateQueries: {
getAllGroups: (prev, {mutationResult}) => {
const newLink = mutationResult.data.createLink;
return update(prev, {
allGroups: {
[groupIndex]:
links: {
$push: [newLink]
}
}
})
}
}
选项2:使用update而不是updateQueries,这样您就可以读取根查询的结果,在其上进行映射,然后附加新插入的数据。在此之后,您可以将其写入缓存。
update: (proxy, mutationResult) => {
const query = getAllGroups;
const data = proxy.readQuery({query});
data.allGroups.map((groupData) => {
if(groupData.id == group)
groupData.links.push(mutationResult.data.createLink);
});
proxy.writeQuery({
query,
data
})
}