Reactjs 使React查询返回错误时的上一个数据

Reactjs 使React查询返回错误时的上一个数据,reactjs,axios,react-query,Reactjs,Axios,React Query,在React查询中是否有一种方法可以在发生错误时返回以前的数据?现在,当出现错误时,所有帖子都会消失,我有一个空页面,因为数据未定义,但我想保留旧数据。发生错误时,我希望有旧数据。我有充足的数据:没错,但这并不能解决问题 import React from 'react'; import AxiosClient from 'api/axiosClient'; import { createFetchResourcesAction } from 'api/actions/resources/res

在React查询中是否有一种方法可以在发生错误时返回以前的数据?现在,当出现错误时,所有帖子都会消失,我有一个空页面,因为数据未定义,但我想保留旧数据。发生错误时,我希望有旧数据。我有充足的数据:没错,但这并不能解决问题

import React from 'react';
import AxiosClient from 'api/axiosClient';
import { createFetchResourcesAction } from 'api/actions/resources/resourcesActions';
import { Post, Resources } from 'api/actions/resources/resources.types';
import { Home } from './Home';

export const HomeContainer = () => {
  const { selectedPage, perPage, handlePageChange } = usePagination();

  const fetchResources = ({ pageParam = 1 }) =>
    AxiosClient.request<Resources<Post>>(createFetchResourcesAction(perPage, pageParam));

  const { data, isError, isFetching } = useQuery(
    ['resources', selectedPage, perPage],
    () => fetchResources({ pageParam: selectedPage }),
    { keepPreviousData: true },
  );

  return (
    <Home
      posts={data?.data.results}
      isLoading={isFetching}
      isError={isError}
      selectedPage={selectedPage}
      numberOfPages={Math.ceil(resolverNumberOfPages())}
      onPageChange={(action, value) => handlePageChange(action, +value)}
    />
  );
};

据我所知,如果查询从成功状态变为错误状态,react query不会从缓存中删除任何数据。如果缓存中有
数据
,即使之后的查询出错,也会得到它。所以这是一种可能的状态:

{ state: 'error', isError: true, data: { json from previous successful response }}

但是如何访问以前成功的响应?通过useQuery返回的
数据
属性
import { AxiosRequestConfig } from 'axios';

export const createFetchResourcesAction = (perPage: number, page: number): AxiosRequestConfig => {
  return {
    method: 'get',
    url: /resources?per_page=${perPage}&page=${page},
  };
}
{ state: 'error', isError: true, data: { json from previous successful response }}