当来自API的响应状态未经授权时,我需要重定向登录屏幕并清除身份验证令牌。
通过向模块提供HTTP拦截器,我可以轻松地在角度上做到这一点,因此我在React中寻找RTK查询中的等效内容。
有办法通过RTK查询添加全局拦截器吗?还是用于响应一组查询的拦截器?
我想用transformResponse字段来实现上面的逻辑,但是这样做似乎不对,我必须将函数调用添加到每个transformResponse回调的主体中。
发布于 2022-07-23 16:45:41
你可以通过包装你的fetchBaseQuery来做到这一点。在文档中有一个用于重新授权的示例:
const baseQuery = fetchBaseQuery({ baseUrl: '/' })
const baseQueryWithReauth: BaseQueryFn<
string | FetchArgs,
unknown,
FetchBaseQueryError
> = async (args, api, extraOptions) => {
let result = await baseQuery(args, api, extraOptions)
if (result.error && result.error.status === 401) {
// your logic here
}
return result
}https://stackoverflow.com/questions/73092009
复制相似问题