Apollo GraphQL请求被取消

时间:2018-05-11 13:57:20

标签: reactjs react-apollo apollo-client

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

typeahead-react-component

不幸的是,这种体验并不顺利。出于某种原因,阿波罗时不时会取消50%以上的请求。

cancelled-requests

我还记录了包含graphql HoC的组件可以访问的响应数据。在所需的情况下,加载状态设置为false,我的words数据可用。在不受欢迎的情况下,加载状态设置为true且没有words数据可用。无论是期望的还是不期望的请求,后端每次都会执行。

不受欢迎的案例

undesired-case

请注意1的网络状态。

期望案例

desired-case

请注意7的网络状态。

为什么阿波罗取消这些要求?如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您是如何使用graphql高阶组件的?

您似乎在渲染函数本身中创建了更高阶组件的实例。渲染被多次触发,特别是如果你使用。如果在请求解决之前发生重新呈现,则取消旧请求。您可以通过使用新的Query组件来避免这种情况。 Query组件可以在render中轻松使用。它优雅地呈现了那些重新呈现的东西。