覆盖 Apollo in-memory-cache 中的 id

问题描述

在基于 Apollo 的 Web 应用程序中,为用户提供了更改实体标识符的功能 - 即在 graphql defs 中归档的“id”标识符 - 使用服务器 API。
在那个操作的那一刻,当前的 Apollo in-memory-cache 已经包含了许多上下文中关于更新 id-entity 的引用:

  • 主要缓存实体引用(位于 cache.data.data 的根)
  • 不同其他实体中的各种引用(通过 __ref 字段)

所有这些引用都会停止,以及任何涉及更新实体 ID 的查询监视

查询观看问题可以应用解决

关于缓存,我没有找到这个用例的任何内置功能
所以我想知道我是否可以手动管理..

我会手动修改 cache.data.data 对象:

  • 克隆顶级实体,根据新的 id 重命名顶级 prop-name
  • 删除原来的
  • 扫描整个缓存对象中的任何 __ref 并相应地更改值

这种方法有什么问题吗?
我是不是错过了一些东西?
未来的 lib 升级有多大可能会改变?
有更简洁的方法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)