Есть ли способ предоставить данные по умолчанию при сбое API в запросе RTK?

Я впервые пробую RTK Query, чтобы получить некоторые данные в приложении реакции + ts. Есть ли способ указать некоторые данные по умолчанию в случае сбоя API? Какой передовой практике здесь следует следовать?

export const dummyApi = createApi({
  reducerPath: 'dummyApi',
  baseQuery,
  tagTypes: ['Dummy'],
  endpoints: (builder) => ({
    getDummy: builder.query<DummyItem[], void>({
      query: () => `/dummy`,
      providesTags: ['Dummy'],
      transformResponse: (response: DummyApiResponse) =>
        return [...someDefaultListOfItems, ...response.data];
      },
    }),
  }),
});

Я попробовал что-то в transformErrorResponse, но не смог понять.

🤔 А знаете ли вы, что...
React предоставляет жизненные циклы компонентов для управления состоянием и поведением.


153
1

Ответ:

Решено
const handleError = (args, { queryFulfilled }) => {
  try {
    const { data } = await queryFulfilled;
  } catch (error) {
    // return default data in here
  }
};
export const dummyApi = createApi({
  reducerPath: 'dummyApi',
  baseQuery,
  tagTypes: ['Dummy'],
  endpoints: (builder) => ({
    getDummy: builder.query<DummyItem[], void>({
      query: () => `/dummy`,
      providesTags: ['Dummy'],
      transformResponse: (response: DummyApiResponse) =>
        return [...someDefaultListOfItems, ...response.data];
      },
      onQueryStarted: handleError
    }),
  }),
});

Вы можете попробовать API onQueryStarted и обработать ошибку, используя в качестве моего примера блок try catch. Надеюсь, это адски.