关于reactjs:Apollo GraphQL-多个组件共享相同的突变

Apollo GraphQL - Multiple components sharing the same mutation

我正在使用react-apollo并创建一个需要每X秒同步一次应用程序的整个本地数据存储的应用程序。

因此本质上,假设<input1 /><input2 />都需要定期同步到服务器。

1
2
3
4
<App>
   <input1 />
   <input2 />
</App>
  • GraphQL应该package哪个组件以实现同步?
  • 是否可以在redux动作中使用graphql突变,以使该突变可以在分配动作时发生?

" Apollo方式"是让输入像React绑定的输入一样,但是绑定将通过查询和突变进行,并添加了乐观的响应以改善交互性。

为每个输入创建突变,并在输入更改时调用它们。提供乐观的响应,以便用户操作立即生效。

同样,创建一个查询以获取输入值,并使用这些值来初始化输入。

如果其他人也可以更改输入,则需要设置订阅。


我建议您为整个应用添加订阅。
它可能像这样工作:

  • 当您打开页面时,您查询<input1 /><input2 />的值
  • 然后,通过查询的subscribeToMore函数订阅服务器。
  • 服务器具有一个循环,该循环每x秒发布一次订阅数据。哪个是<input1 /><input2 />的数据
  • 这样您就有了可能,您可以手动更新商店,或者在输入中添加一个ID,然后让apollo客户端通过dataIdFromObject进行工作。