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 方法获取更多数据时手动更新缓存,实现缓存的更新和数据的加载。

相关内容

热门资讯

第五俱乐部(wepoke真的)... 第五俱乐部(wepoke真的)外挂透明挂辅助器(辅助挂)可靠技巧(有挂细节)-哔哩哔哩;实战中需综合...
五个检测!wpk怎么下载ios... 五个检测!wpk怎么下载ios(外挂被实锤)原来真的有挂(有挂实锤)-哔哩哔哩;支持2-10人实时对...
2个挂!德扑之星电脑版(数据解... 2个挂!德扑之星电脑版(数据解析)透视辅助(有挂分析)-哔哩哔哩关于德扑之星电脑的基本介绍、功能特点...
4修改器!白金岛放炮罚有挂吗(... 4修改器!白金岛放炮罚有挂吗(辅助挂)太坑了其实真的有挂(确实有挂)-哔哩哔哩是一款可以让一直输的玩...
3个规律!用ai外挂打德州有用... 3个规律!用ai外挂打德州有用(辅助机器人)透视(真的有挂)-哔哩哔哩这是由厦门游乐互动科技有限公司...
第3新版(德扑手机上)外挂透明... 第3新版(德扑手机上)外挂透明挂辅助APP(辅助挂)安装教程(有挂规律)-哔哩哔哩;wpk透视辅助官...
第4个助手!德扑ai软件(牌力... 第4个助手!德扑ai软件(牌力分析软件)辅助透视(有挂讲解)-哔哩哔哩1、玩家可以在德扑ai软件软件...
第九计算器!网易棋牌一直输为什... 第九计算器!网易棋牌一直输为什么(辅助挂)太坑了其实真的有挂(有挂解密)-哔哩哔哩1、任何德州ai辅...
第四个技巧!微扑克app(伙牌... 第四个技巧!微扑克app(伙牌技巧)透视辅助(的确有挂)-哔哩哔哩;wpk透视辅助官方版是专为公司和...
第6专用(德州免费)外挂透明挂... 1、第6专用(德州免费)外挂透明挂辅助神器(透视)德州论坛(有挂详情)-哔哩哔哩;详细教程。2、德州...