Apollo GraphQL 请求被取消

Apollo GraphQL requests are canceled

我正在使用 Downshiftreact-apollo 构建一个 React type ahead 文本字段组件。当用户输入时,我查询提前输入建议并将它们显示在文本字段下方。

不幸的是,这次体验并不顺利。出于某种原因,Apollo 时不时会取消超过 50% 的请求。

我还记录了用 graphql HoC 包装的组件可以访问的响应数据。在理想情况下,loading 状态设置为 false 并且我的 words 数据可用。在不希望的情况下,loading 状态设置为 true 并且没有 words 数据可用。无论是需要的还是不需要的请求,后端每次都会执行。

不希望出现的情况

请注意 1 的网络状态。

想要的案例

请注意 7 的网络状态。

为什么 apollo 取消这些请求?如何解决这个问题?

您如何使用 graphql 高阶组件?

您似乎在渲染函数本身中创建了该高阶组件的实例。 render 会被多次触发,尤其是当你使用 .如果在请求得到解决之前发生重新渲染,则旧请求将被取消。您可以改用新的查询组件来避免这种情况。查询组件可以很容易地在渲染中使用。它优雅地处理了那些重新渲染。