Apollo是否会缓存从mutation返回的数据?
创始人
2024-09-09 13:01:26
0

Apollo Client默认不会缓存从mutation返回的数据。但是,你可以通过使用Apollo Client的update函数来手动更新缓存。

以下是一个示例,演示了如何在mutation返回数据后手动更新缓存:

import { ApolloClient, InMemoryCache, gql } from '@apollo/client';

const client = new ApolloClient({
  // 配置Apollo Client
  cache: new InMemoryCache(),
  // 其他配置项...
});

const ADD_TODO = gql`
  mutation AddTodo($title: String!) {
    addTodo(title: $title) {
      id
      title
    }
  }
`;

const updateCache = (cache, { data }) => {
  // 从mutation返回的数据中获取新创建的todo
  const newTodo = data.addTodo;

  // 从缓存中读取已存在的todos列表
  const existingTodos = cache.readQuery({
    query: GET_TODOS,
  });

  // 将新创建的todo添加到已存在的todos列表中
  cache.writeQuery({
    query: GET_TODOS,
    data: {
      todos: [...existingTodos.todos, newTodo],
    },
  });
};

const addTodo = (title) => {
  client.mutate({
    mutation: ADD_TODO,
    variables: { title },
    update: updateCache, // 在mutation返回数据后执行update函数
  });
};

在上面的示例中,updateCache函数使用cache.readQuery从缓存中读取已存在的todos列表,并使用cache.writeQuery将新创建的todo添加到列表中。

请注意,上述示例假设已存在一个名为GET_TODOS的查询,用于获取todos列表。你需要将其替换为你实际使用的查询。

相关内容

热门资讯

攻略讲解(aapoker开发)... 攻略讲解(aapoker开发)外挂透明挂辅助app(辅助挂)辅助透视(有挂总结)-哔哩哔哩;玩家必备...
透视游戏(wepoke透明挂)... 透视游戏(wepoke透明挂)外挂透明挂辅助器安装(辅助挂)透视辅助(有挂秘笈)-哔哩哔哩;亲,其实...
一起来探讨!微扑克发牌(weP... 一起来探讨!微扑克发牌(wePokE)外挂透明挂辅助器(透视)微扑克教程(有挂透视)-哔哩哔哩,亲,...
一分钟了解(Wepoke必胜)... 一分钟了解(Wepoke必胜)外挂透明挂辅助器(辅助挂)的确真的有挂(2025已更新)(哔哩哔哩);...
玩家必看秘籍(微扑克中牌率)外... 玩家必看秘籍(微扑克中牌率)外挂透明挂辅助神器(辅助挂)辅助透视(真的有挂)-哔哩哔哩;微扑克中牌率...
必看攻略(Wepoke外挂)外... 1、必看攻略(Wepoke外挂)外挂透明挂辅助器(透视)透视辅助(有挂透视)-哔哩哔哩;详细教程。2...
总算了解!wpk实测(wepo... 总算了解!wpk实测(wepokE)外挂透明挂辅助器安装(辅助挂)专业教程(了解有挂)-哔哩哔哩;(...
玩家必看(德州之星app安卓版... 玩家必看(德州之星app安卓版)外挂透明挂辅助工具(辅助挂)果真真的有挂(2021已更新)(哔哩哔哩...
玩家交流(新版WPK)外挂透明... 玩家交流(新版WPK)外挂透明挂辅助软件(透视)透视辅助(有挂方式)-哔哩哔哩是一款可以让一直输的玩...
玩家科普(aapoker ap... 玩家科普(aapoker app)外挂透明挂辅助app(辅助挂)发牌规律(的确有挂)-哔哩哔哩;亲真...