Как обработать уведомление об ошибке и успешном завершении обычным способом (промежуточное ПО) с помощью 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

Другие вопросы по тегам