You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React + urql Graphcache:执行Mutation后如何失效指定类型所有实体

如何在urql Graphcache中执行Mutation后失效指定类型的所有实体

正确实现代码

{
  // 其他配置项
  updates: {
    Mutation: {
      delete_all_todos: (_result, _args, cache) => {
        // 失效所有类型为Todo的实体
        cache.invalidate({ __typename: 'Todo' });
      },
    },
  },
}

关键说明

  • 注意类型名大小写:GraphQL规范中类型名默认采用大驼峰格式(比如Todo),而非小写的todo,务必和你的GraphQL Schema定义保持一致,这是最容易踩的坑。
  • 批量失效的作用:调用cache.invalidate({ __typename: 'Todo' })会直接标记该类型下的所有实体为失效状态,后续相关查询触发时,Graphcache会自动舍弃旧缓存、从服务器拉取最新数据,无需手动清理关联的查询缓存。
  • 场景适配性:对于delete_all_todos这类批量删除操作,直接失效整个类型的实体是最高效的方案,不需要额外处理查询缓存的更新逻辑。

额外注意

  • 该方式适用于urql v2及以上版本的Graphcache。
  • 失效操作会自动触发所有依赖该类型数据的查询重新请求,确保界面数据与后端一致。

内容的提问来源于stack exchange,提问作者user3690467

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 07:27:02