如何解决如何从 Apollo Cache 突变后删除项目?
我有一个从数据库中删除项目的突变。我知道更新 Apollo 缓存的一种可能方法是指定一个 update
函数,该函数将在成功响应后调用。我也知道有几种方法可以使用 cache.modify
和 cache.readQuery
/cache.writeQuery
函数来实现。
Apollo 文档提供的示例展示了如何remove an item from a list。不幸的是,文章中提供的示例显示了如何更新嵌套属性而不是删除整个对象。
您能帮我了解如何正确地从缓存中删除整个项目吗?
我使用 Apollo-Client v3+
这是我的代码部分
export const REMOVE_ITEM_MUTATION = gql`
mutation RemoveItem($itemId: String!) {
removeItem(input: {
itemId: $itemId
}) {
itemId # Returns an id of successfully deleted object
}
}
`
const [removeItem,{ loading }] = useMutation(
REMOVE_ITEM_MUTATION,{
update: (cache,result) => {
// How to use cache.modify?
},onError: (error) => { /*...*/ },onCompleted: (value) => { /*...*/ }
}
)
附言我也很困惑,cahce.modify
函数是否可以代替 cache.readQuery
和 cache.writeQuery
?我把它当作一种从 Apollo Client 3 开始修改缓存的新方法。我说得对吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。