Apollo GraphQL - 共享相同突变的多个组件

时间:2017-03-31 04:54:38

标签: reactjs redux graphql apollo react-apollo

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

基本上,想象$this->email->to('rahul@gmail.com') $this->email->subject('Testing Email') $this->email->message('hello') $this->email->send() <input1 />都需要定期同步到服务器。

<input2 />
  • 为了实现同步,GraphQL应该包装哪个组件?
  • 是否可以在redux操作中使用graphql变异,以便在发送操作时发生突变?

2 个答案:

答案 0 :(得分:1)

“Apollo Way”将使输入类似于React绑定输入,但绑定将通过查询和突变发生,并添加乐观响应以改善交互性。

为每个输入创建突变,并在输入发生变化时调用它们。提供乐观的回应,以便用户立即采取行动。

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

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

答案 1 :(得分:0)

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

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