Apollo GraphQL 客户端 - 从 JS (React) 修改数据

Apollo GraphQL Client - Modifying The Data From JS (React)

我正在使用 graphql 开发一个实时聊天应用程序,我想修改获取的数据而不是再次重新获取它 - 以减少不必要的网络请求。

当我的应用首次启动时,我正在获取用户列表(不是当前登录的用户)以显示在应用的侧边栏上。 每个用户都包含一个 lastMessage 对象,表示他发送或接收的最后一条消息。

当用户点击要与之聊天的用户时,将提交另一个查询以获取用户之间的所有消息。

使用订阅,我在发送新消息时更新消息状态(由登录用户或其他用户发送)。

现在,我想更新侧边栏上显示的相关用户的 lastMessage 对象,但我不想为此再次重新获取所有用户,因为我有所有更新的数据我通过订阅事件收到的客户端。相反,我想使用 js 更新 graphql 查询的数据。

有办法吗? 谢谢。

Apollo 缓存有一个 'modify' 方法可以用来设置用户最后一条消息的缓存。

Apollo docs for cache modify