Как обработать уведомление об ошибке и успешном завершении обычным способом (промежуточное ПО) с помощью RTK Query?
Я новичок в запросах RTK, и мне нравится работать с запросами RTK.
В моем проекте я хотел бы добавить общий обработчик ошибок (промежуточное ПО), а также обработчик успешного ответа. Для обработки ошибок я нашел служебную программу промежуточного слоя из документации по запросам RTK. Используя isRejectedWithValue, мы можем обрабатывать распространенные ошибки. Но для успешных запросов API я не нашел никакой полезности.
Пожалуйста, дайте мне знать, если у кого-нибудь есть дополнительная информация по этому поводу.
Заранее спасибо.
2 ответа
Вы можете сделать что-то вроде:
import { isRejectedWithValue, isFulfilled } from '@reduxjs/toolkit'
import type { MiddlewareAPI, Middleware } from '@reduxjs/toolkit'
import { toast } from 'your-cool-library'
export const rtkQueryLogger: Middleware =
(api: MiddlewareAPI) => (next) => (action) => {
// RTK Query uses `createAsyncThunk` from redux-toolkit under the hood, so we're able to utilize these matchers!
if (isRejectedWithValue(action)) {
console.warn('We got a rejected action!')
toast.warn({ title: 'Async error!', message: action.error.data.message })
} else (isFulfilled(action)) {
toast.success('It worked!');
}
return next(action)
}
На основе примера из документации запроса rtk:
https://redux-toolkit.js.org/rtk-query/usage/error-handling#handling-errors-at-a-macro-level
я полагаю, что
isFulfilled
это то, что вы ищете https://redux-toolkit.js.org/api/matching-utilities#isfulfilled