1

我在我的反应应用程序中使用 rtk fetchBase。从文档中我了解到我们可以创建自定义 baseQuery 来处理响应。我想通过在 401 处理程序中调度减速器来编写一个 baseQuery 来处理 401 错误。如何创建自定义 baseQuery。

4

1 回答 1

1

您可以考虑以下示例:

export const baseQueryWithReauth: BaseQueryFn<
      string | FetchArgs,
      unknown,
      FetchBaseQueryError
    > = async (args, api, extraOptions = {}) => {
      const result = await baseQuery(args, api, extraOptions);
      if (result?.error?.status === RESPONSE_CODE.NO_AUTH) { // 401
        logout(); // Optionally you can trigger some code directly here
        // or dispatch an action to be handled in reducer or your middleware
        api.dispatch("whatever action you need");
      }
      return result;
    };

但是从您的问题来看,您将在这里发送什么并不清楚。这不是“调度减速器”的有效声明。您只能发送动作。

于 2021-12-08T18:41:44.027 回答