apollo的useQuery在client.resetStore()后数据不更新。
创始人
2024-09-09 09:00:26
0

问题描述:

在使用Apollo的useQuery钩子时,当调用client.resetStore()后,数据不会更新。

解决方法:

  1. 使用Apollo的refetchQueries选项重新获取数据:
import { useQuery, gql } from '@apollo/client';

const GET_DATA = gql`
  query GetData {
    // 查询数据的GraphQL查询
  }
`;

const MyComponent = () => {
  const { loading, error, data, refetch } = useQuery(GET_DATA);

  const handleResetStore = () => {
    // 重置Apollo客户端的缓存
    client.resetStore();
    
    // 使用refetchQueries选项重新获取数据
    refetch();
  };

  if (loading) return 

Loading...

; if (error) return

Error :(

; return (
{/* 显示数据 */} {data && data.someData} {/* 重置缓存按钮 */}
); }; export default MyComponent;

在上面的示例中,我们定义了一个handleResetStore函数,当点击重置缓存按钮时,会调用client.resetStore()来重置Apollo客户端的缓存,并使用refetch()重新获取数据。

  1. 使用Apollo的useLazyQuery钩子重新获取数据:
import { useQuery, gql, useLazyQuery } from '@apollo/client';

const GET_DATA = gql`
  query GetData {
    // 查询数据的GraphQL查询
  }
`;

const MyComponent = () => {
  const { loading, error, data } = useQuery(GET_DATA);
  const [refetchData, { loading: refetchLoading }] = useLazyQuery(GET_DATA);

  const handleResetStore = () => {
    client.resetStore();
    refetchData();
  };

  if (loading || refetchLoading) return 

Loading...

; if (error) return

Error :(

; return (
{/* 显示数据 */} {data && data.someData} {/* 重置缓存按钮 */}
); }; export default MyComponent;

在上面的示例中,我们使用了useLazyQuery钩子来定义一个refetchData函数,当点击重置缓存按钮时,会调用client.resetStore()来重置Apollo客户端的缓存,并使用refetchData()重新获取数据。

这些方法都可以在调用client.resetStore()后重新获取最新的数据。

相关内容

热门资讯

7分钟了解!个旧麻将神器软件(... 7分钟了解!个旧麻将神器软件(辅助挂)外挂透视辅助软件(2024已更新)(哔哩哔哩),您好,这款游戏...
最新通报!微信小程序财神十三张... 最新通报!微信小程序财神十三张有挂,微信雀神麻将助赢神器购买,必备教程(真的有挂);实战中需综合运用...
科普攻略(Wepoke智能)外... 科普攻略(Wepoke智能)外挂辅助工具(辅助挂)德州教程(2020已更新)(哔哩哔哩)是一款可以让...
重要通知!来玩德州可以作弊吗(... 重要通知!来玩德州可以作弊吗(透视软件挂)-原来真的有挂(2025已更新);来玩德州可以作弊吗是一款...
玩家必看秘籍!微扑克代打是真的... 1、玩家必看秘籍!微扑克代打是真的吗(辅助挂)反正真的有挂2020已更新)(哔哩哔哩);该软件可以轻...
七分钟普及!老友内蒙古麻将规律... 七分钟普及!老友内蒙古麻将规律(透视)外挂透视辅助APP(2023已更新)(哔哩哔哩)1、起透看视 ...
总算了解!兴动互娱打牌,广东雀... 总算了解!兴动互娱打牌,广东雀神小程序老是输,线上教程(有挂分享);(需添加指定薇757446909...
热点推荐(Wepoke下载)软... Wepoke下载新手教程相关信息汇总(需添加指定薇757446909获取下载链接);热点推荐(Wep...
透视苹果版!wepoker透视... 透视苹果版!wepoker透视软件辅助挂(透视辅助挂)-确实是真的有挂(2025已更新);亲,这款w...
重大消息(红龙扑克发牌)外挂透... 重大消息(红龙扑克发牌)外挂透视辅助工具(辅助挂)安装教程(2021已更新)(哔哩哔哩);精心打造了...