FetchBaseQuery检索服务器端分页数据

mpbci0fu  于 2022-09-21  发布在  Hbase
关注(0)|答案(1)|浏览(245)

我有一个用例,其中数据显示在服务器端的分页表中。当用户点击下一页时,数据被获取并存储在内存中,以避免多次API调用。有一个刷新按钮,点击它就可以刷新表格,预期的行为是刷新显示的数据。

假设用户当前正在查看第10页的数据,然后单击刷新。我已经决定在那个时刻重置表格,并向用户显示第一页的详细信息,用户将不得不点击并获取更多的数据,以获得更多的页面。但是现在的情况是,第一个页面的数据由API提供,而其他页面的数据则从缓存中获取

我想知道,当用户单击刷新按钮时,是否有任何方法可以使此API的所有缓存无效。

下面是一些相同的代码:

const [skip, setSkip] = React.useState<boolean>(false);
  const [request, setRequest] = React.useState({});
  const [currentPageIndex, setCurrentPageIndex] = React.useState(1);
  let { data, error, isFetching, refetch } = useQuery(request,{skip});
  const refreshDetails = () => {
    setSkip(false);
    setCurrentPageIndex(1);
    setRequest({
      test: true,
      index: currentPageIndex
    });
    setTimeout(() => {
      refetch();
    }, 0);
  };
eqfvzcg8

eqfvzcg81#

在这种情况下,您可以将providesTags: ["Table"]添加到终结点,而不是调用refetch,而是执行dispatch(api.util.invalidateTags(["Table"]))

相关问题