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