Apollo GraphQL - Multiple components sharing the same mutation
我正在使用react-apollo并创建一个需要每X秒同步一次应用程序的整个本地数据存储的应用程序。
因此本质上,假设
1 2 3 4 | <App> <input1 /> <input2 /> </App> |
- GraphQL应该package哪个组件以实现同步?
- 是否可以在redux动作中使用graphql突变,以使该突变可以在分配动作时发生?
" Apollo方式"是让输入像React绑定的输入一样,但是绑定将通过查询和突变进行,并添加了乐观的响应以改善交互性。
为每个输入创建突变,并在输入更改时调用它们。提供乐观的响应,以便用户操作立即生效。
同样,创建一个查询以获取输入值,并使用这些值来初始化输入。
如果其他人也可以更改输入,则需要设置订阅。
我建议您为整个应用添加订阅。
它可能像这样工作:
-
当您打开页面时,您查询
<input1 /><input2 /> 的值 -
然后,通过查询的
subscribeToMore 函数订阅服务器。 -
服务器具有一个循环,该循环每x秒发布一次订阅数据。哪个是
<input1 /><input2 /> 的数据 -
这样您就有了可能,您可以手动更新商店,或者在输入中添加一个ID,然后让apollo客户端通过
dataIdFromObject 进行工作。