0

在基于 Apollo 的 Web 应用程序中,用户可以使用服务器 api 更改实体的标识符(即 graphql defs 中的“id”标识符)。
在该操作的那一刻,当前的 Apollo in-memory-cache 已经包含许多关于在许多上下文中更新 id-entity 的引用:

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

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

查询监视问题可以应用程序解决。

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

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

  • 克隆顶级实体,将顶级道具名称相应地重命名为新 id
  • 删除原来的
  • 扫描整个缓存 obj__ref并相应地更改值

这种方法有什么问题吗?
我错过了什么吗?
未来的 lib 升级有多大可能改变刹车?
有更清洁的方法吗?

4

0 回答 0