Reactjs Apollo客户端如何将本地缓存的变体发送到服务器

Reactjs Apollo客户端如何将本地缓存的变体发送到服务器,reactjs,graphql,apollo,Reactjs,Graphql,Apollo,我正在尝试根据用户请求将所有本地缓存的变体发送到服务器。 其想法是,UI中有一个“保存更改”按钮,允许用户使用所有本地应用的更改更新远程数据库 示例:缓存中有一个users对象: "User:1": { name: "Tom", enabled: true }, "User:2": { name: "John", enabled: true } 现在,假设UI用户通过设置enabled:fa

我正在尝试根据用户请求将所有本地缓存的变体发送到服务器。 其想法是,UI中有一个“保存更改”按钮,允许用户使用所有本地应用的更改更新远程数据库

示例:缓存中有一个users对象:

"User:1": {
   name: "Tom",
   enabled: true
},
"User:2": {
   name: "John",
   enabled: true
}
现在,假设UI用户通过设置
enabled:false
禁用两个用户,然后按“保存更改”。此时,我希望发送所有本地更改;这两个对象都应发送到远程并在远程保存。 我尝试了几种方法,但它们都会导致相当粗糙的代码。 有什么标准的方法吗


不确定这是否相关,但我正在使用C#的“热巧克力”graphql服务器。

没有什么比得上“本地缓存的突变”。

通过写入缓存,您只需更改其他操作(查询或更改)的结果。这里没有“本地队列”、“同步时要更新的本地副本”之类的东西——它只是一个缓存。您可以对其进行写入,以保存/避免突变后不必要的查询(尤其是对于相关类型)


要创建“保存更改”功能,只需从缓存中读取数据并在变异中使用它——可能是特殊的,接受数组作为参数/输入类型。如果没有这样的变异可用/允许,您可以尝试将多个(别名)变异连接到一个请求中。

没有什么比“本地缓存的变异”更好的了。

通过写入缓存,您只需更改其他操作(查询或更改)的结果。这里没有“本地队列”、“同步时要更新的本地副本”之类的东西——它只是一个缓存。您可以对其进行写入,以保存/避免突变后不必要的查询(尤其是对于相关类型)


要创建“保存更改”功能,只需从缓存中读取数据并在变异中使用它——可能是特殊的,接受数组作为参数/输入类型。如果没有此类变异可用/许可,您可以尝试将多个(别名)变异连接到一个请求中。

关于措辞,这是很公平的。关于解决方案-这几乎是我到目前为止发现的。我希望有更好的方法。这个问题看起来相当标准,我很惊讶我没有找到一个可以解决这个问题的软件包。不需要吗?为何本地更改不应存储在缓存中-这是准备变异的一部分-只需将其保持在本地、组件状态(或Formik),并在一个单一的经典变异中立即使用。我使用Apollo进行本地状态管理。这部分工作得很好,只是让我惊讶的是,没有办法将该状态传回远程。我想我会照你说的做。我将在服务器端创建一个特殊的变体,并将所有的更改都推到服务器端。关于解决方案-这几乎是我到目前为止发现的。我希望有更好的方法。这个问题看起来相当标准,我很惊讶我没有找到一个可以解决这个问题的软件包。不需要吗?为何本地更改不应存储在缓存中-这是准备变异的一部分-只需将其保持在本地、组件状态(或Formik),并在一个单一的经典变异中立即使用。我使用Apollo进行本地状态管理。这部分工作得很好,只是让我惊讶的是,没有办法将该状态传回远程。我想我会照你说的做。我将在服务器端创建一个特殊的变种,并推动所有的更改。