【问题标题】:Apollo client refetch inactive queriesApollo 客户端重新获取非活动查询
【发布时间】:2021-11-26 10:34:17
【问题描述】:

我有一个查询,它获取带有分页的列表。如果我使用cache-and-network,apollo 首先获取缓存的列表项,然后获取第一页。它会导致屏幕闪烁。如果我使用network-only,它会停止,但每次我导航时,我都会得到列表的第一页。我想使用缓存列表。使用cache-first 可以正常工作。

但是,当我尝试向列表中添加新项目时,我显然想重新获取它。添加新列表项在单独的组件中,并且列表组件未呈现,列表查询未激活。

一旦突变承诺解决,我重定向到列表组件,但似乎refetchQueries 在此之前运行。

我可以安装列表组件以激活查询,但必须有一种更简单的方法来解决这个问题——我的意思是它应该是一种常见的预期行为。否则它需要使用network-only,或者实现某种状态来知道是否应该重新获取查询。

【问题讨论】:

    标签: reactjs apollo-client


    【解决方案1】:

    我只是看了一下 apollo graphql 文档。有两个函数(refetchQueries,尤其是 reFetchObservableQueries)允许我们刷新活动查询。它可能会帮助您解决挑战。

    您可以通过使用组件内的 useApolloClient 挂钩来访问这些功能。

    您还可以使用 includeStandby 选项刷新备用查询。 采用可选参数 includeStandby,它将在重新获取时包含处于待机模式的查询。

    https://www.apollographql.com/docs/react/api/core/ApolloClient/

    【讨论】:

    • 主要问题是查询当时没有激活
    猜你喜欢
    • 2023-03-29
    • 2021-01-16
    • 2021-11-23
    • 2016-08-31
    • 1970-01-01
    • 2018-02-07
    • 2020-09-29
    • 2021-11-18
    • 2019-05-27
    相关资源
    最近更新 更多