ApolloGraphQL中的useQuery在第一次调用时更新缓存,但fetchMore会怎样呢?
创始人
2024-09-09 10:00:53
0

在 Apollo GraphQL 中,useQuery 是用于查询数据的 React Hook,它可以自动更新缓存。而对于 fetchMore,它用于在已有数据的基础上获取更多数据,不会触发缓存的自动更新。但是我们可以通过一些方法手动更新缓存。

下面是一个示例代码,演示了如何使用 useQueryfetchMore 来获取数据并更新缓存:

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

const GET_POSTS = gql`
  query GetPosts($limit: Int, $offset: Int) {
    posts(limit: $limit, offset: $offset) {
      id
      title
    }
  }
`;

const PostList = () => {
  const { loading, data, fetchMore } = useQuery(GET_POSTS, {
    variables: { limit: 10, offset: 0 },
  });

  if (loading) {
    return 

Loading...

; } const { posts } = data; const loadMorePosts = () => { fetchMore({ variables: { offset: posts.length }, updateQuery: (prev, { fetchMoreResult }) => { if (!fetchMoreResult) return prev; return { posts: [...prev.posts, ...fetchMoreResult.posts], }; }, }); }; return (
{posts.map((post) => (
{post.title}
))}
); }; export default PostList;

在上述代码中,我们首先定义了一个 GET_POSTS 查询,用于获取文章列表。然后,我们使用 useQuery Hook 来发起查询请求,并在初始时设置了 limitoffset 变量。

当数据加载完成后,我们可以从 data 对象中获取到 posts 数组。然后,我们通过 fetchMore 方法来获取更多的文章数据。在 fetchMore 方法中,我们指定了新的 offset 变量,用于获取下一批数据。我们还通过 updateQuery 参数来手动更新缓存,将新获取到的数据添加到之前的数据中。

最后,我们展示了文章列表,并提供了一个 "Load More" 按钮,点击该按钮时会触发 loadMorePosts 函数,从而获取更多的文章数据。

通过这种方式,我们可以在使用 fetchMore 方法获取更多数据时手动更新缓存,实现缓存的更新和数据的加载。

相关内容

热门资讯

两分钟了解!蜀山四川麻将有挂吗... 两分钟了解!蜀山四川麻将有挂吗,大宝麻将辅助器app,可靠技巧(有挂辅助);1、该软件可以轻松地帮助...
两分钟了解!衢州都莱辅助器,牌... 两分钟了解!衢州都莱辅助器,牌乐门手机麻将有什么,2025新版技巧(有挂技巧)1、下载好牌乐门手机麻...
五分钟了解!福建十三水软件开发... 五分钟了解!福建十三水软件开发,八闽十三张软件,AI教程(有挂普及)1、超多福利:超高返利,海量正版...
6分钟了解!途乐棋牌这个平台靠... 6分钟了解!途乐棋牌这个平台靠谱吗,中至麻将可以设置输赢吗,必赢方法(有挂脚本)1、操作简单,无需注...
四分钟了解!快玩炸翻天辅助器,... 四分钟了解!快玩炸翻天辅助器,星悦广东麻将有没有挂,普及教程(有挂揭秘)1、星悦广东麻将有没有挂系统...
九分钟了解!掌酷十三张系统规律... 九分钟了解!掌酷十三张系统规律,掌电竞技真的能赢吗,大神讲解(有挂揭秘);1、玩家可以在掌电竞技真的...
9分钟了解!蛮籽重庆麻将有没有... 9分钟了解!蛮籽重庆麻将有没有挂,八闽十三张有外挂吗,必胜教程(有挂解密)1、上手简单,内置详细流程...
8分钟了解!微信牵手跑得快小程... 8分钟了解!微信牵手跑得快小程序辅助器免费,牌乐门如何拿到好牌,技巧教程(有挂透明);1、每一步都需...
两分钟了解!老友游戏辅助器,财... 两分钟了解!老友游戏辅助器,财神13张 辅助器,2025新版教程(有挂工具)财神13张 辅助器辅助器...
二分钟了解!新玉海楼茶苑有没有... 二分钟了解!新玉海楼茶苑有没有外 挂,牵手互娱有挂吗,详细教程(有挂普及)小薇(透视辅助)致您一封信...