Apollo GraphQL 请求被取消
Apollo GraphQL requests are canceled
我正在使用 Downshift
和 react-apollo
构建一个 React type ahead 文本字段组件。当用户输入时,我查询提前输入建议并将它们显示在文本字段下方。
不幸的是,这次体验并不顺利。出于某种原因,Apollo 时不时会取消超过 50% 的请求。
我还记录了用 graphql
HoC 包装的组件可以访问的响应数据。在理想情况下,loading 状态设置为 false
并且我的 words
数据可用。在不希望的情况下,loading 状态设置为 true
并且没有 words
数据可用。无论是需要的还是不需要的请求,后端每次都会执行。
不希望出现的情况
请注意 1
的网络状态。
想要的案例
请注意 7
的网络状态。
为什么 apollo 取消这些请求?如何解决这个问题?
您如何使用 graphql 高阶组件?
您似乎在渲染函数本身中创建了该高阶组件的实例。 render 会被多次触发,尤其是当你使用 .如果在请求得到解决之前发生重新渲染,则旧请求将被取消。您可以改用新的查询组件来避免这种情况。查询组件可以很容易地在渲染中使用。它优雅地处理了那些重新渲染。
我正在使用 Downshift
和 react-apollo
构建一个 React type ahead 文本字段组件。当用户输入时,我查询提前输入建议并将它们显示在文本字段下方。
不幸的是,这次体验并不顺利。出于某种原因,Apollo 时不时会取消超过 50% 的请求。
我还记录了用 graphql
HoC 包装的组件可以访问的响应数据。在理想情况下,loading 状态设置为 false
并且我的 words
数据可用。在不希望的情况下,loading 状态设置为 true
并且没有 words
数据可用。无论是需要的还是不需要的请求,后端每次都会执行。
不希望出现的情况
请注意 1
的网络状态。
想要的案例
请注意 7
的网络状态。
为什么 apollo 取消这些请求?如何解决这个问题?
您如何使用 graphql 高阶组件?
您似乎在渲染函数本身中创建了该高阶组件的实例。 render 会被多次触发,尤其是当你使用 .如果在请求得到解决之前发生重新渲染,则旧请求将被取消。您可以改用新的查询组件来避免这种情况。查询组件可以很容易地在渲染中使用。它优雅地处理了那些重新渲染。