【问题标题】:How to re-run local resolvers in React Apollo?如何在 React Apollo 中重新运行本地解析器?
【发布时间】:2019-11-02 07:57:19
【问题描述】:

在我的查询中,我混合使用了远程和本地属性,如下所示:

foo {
  bar
  baz
  qux @client
  quux @client {
    corge
    grault
  }
}

我为quxquux 准备了解析器,但我想每隔一段时间重新计算一次数据。我曾想过用cache.writeDatasetInterval 直接写入缓存,但这会导致大量重写。

有没有办法再次运行解析器?

【问题讨论】:

    标签: graphql apollo react-apollo apollo-client


    【解决方案1】:

    如果您想在特定的时间间隔内再次运行解析器,您可以将 pollInterval 作为选项传递给您的 graphql HOC 或作为您的 Query 组件的道具,具体取决于您的实现。或者,如果您想重新查询以响应例如用户事件,您可以调用 refetch 函数,该函数应该可以通过 props 访问。有关更多信息,请参阅文档here

    【讨论】:

    • 非常感谢。是否可以将pollInterval 与 Hooks 一起使用?
    • 更新:是的,它只是useQuery的配置对象中的option
    • 但现在的问题是我是否可以做一些事情来不再进行查询,而是运行本地解析器?
    • @PaulBerg - 你能提供更多关于你如何使用本地解析器的细节吗?例如,您是否将任何数据写入缓存?您也许可以设置另一个查询 fooMini,它只调用本地解析器,然后轮询或重新获取它。
    • 我为你组装了一个CodeSandbox。查看queries.js 文件并注意GET_STREAM 查询中的paid @client 参数。不幸的是,我认为我不能将本地状态参数移动到不同的查询中,因为它们依赖于远程数据。
    猜你喜欢
    • 1970-01-01
    • 2020-02-05
    • 2020-02-26
    • 2020-03-06
    • 1970-01-01
    • 2021-03-28
    • 2020-08-27
    • 2021-03-25
    • 2016-10-05
    相关资源
    最近更新 更多