Я впервые пробую 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 предоставляет жизненные циклы компонентов для управления состоянием и поведением.
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. Надеюсь, это адски.