reactjs - 如何从 React 中的 Apollo 订阅组件刷新查询/缓存
问题描述
想象一下这样的组件层次结构:
<Team>
<Leaderboard />
<PlayerStats />
</Team>
在 Leaderboard 的 render 方法中,我们有一个 Apollo/GraphQL Query 组件来获取顶级玩家。
我们还有一个组件,它在获得新的 PlayerStat 时触发(目前在 PlayerStats 中——但很高兴将它放在任何地方)。
如何在来自 PlayerStat 订阅组件的触发器时获取排行榜查询以重新获取查询/清除缓存。
谢谢!!
解决方案
所以 Apollo Query 组件提供了一个refetch
带有 React 上下文的函数,就像data
,loading
和error
。
<Query query={...} >
{
({ data, loading, error, refetch}) => {
if (!this.state.refetch) {
this.setState({ refetch });
}
return <RenderData data={data} />;
}
}
</Query>
您可以在状态中设置此refetch
函数,并在组件收到事件时调用它。
推荐阅读
- go - 编组/解组后本地时间损失 52 秒
- javascript - 生成数组的完整(所有大小)组合
- macos - 为什么当我键入映射到其他内容的键时 IntelliJ 会插入 unicode 字符?
- javascript - 将 JSON 数据 blob 文件写入磁盘。什么是正确的内容类型?
- ios - 从 viewDidLoad 中调用的函数外部重新加载 UITableViewController
- php - PHP文件没有找到类,但是定义了类
- swift - count, utf8.count, utf16.count 返回不同的结果
- c# - C# 使用正则表达式捕获第一个匹配项
- python - 无法读取远程 Ubuntu 服务器上烧瓶中保存的机器学习模型
- javascript - 如何在 openSUSE 上使用 NGINX 或 Apache2 将我的端口 80 重新路由到 localhost:3000 以便我可以运行我的 Node.js 应用程序