【问题标题】:Apollo GraphQL requests are canceledApollo GraphQL 请求被取消
【发布时间】:2018-10-21 23:16:53
【问题描述】:

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

很遗憾,这次体验并不顺利。出于某种原因,Apollo 会不时取消 50% 以上的请求。

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

不受欢迎的情况

请注意1的networkStatus。

所需案例

请注意7的networkStatus。

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

【问题讨论】:

    标签: reactjs react-apollo apollo-client


    【解决方案1】:

    您如何使用 graphql 高阶组件?

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

    【讨论】:

    • 真棒使用<Query /> 组件而不是graphql HoC 解决了我的问题。谢谢!!
    猜你喜欢
    • 2019-07-23
    • 2019-07-26
    • 2018-11-02
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    • 2011-04-23
    • 2011-01-28
    相关资源
    最近更新 更多