[英]How to make a response interceptor in RTK Query
當來自 API 的響應狀態未經授權時,我需要重定向到登錄屏幕並清除身份驗證令牌。
我可以通過向模塊提供 HTTP 攔截器輕松地在 Angular 中做到這一點,所以我正在尋找 React 中的 RTK Query 中的等價物。
有沒有辦法通過 RTK 查詢添加全局攔截器? 還是響應一組查詢的攔截器?
我曾想過使用transformResponse
字段實現上述邏輯,但在那里執行似乎不對,我必須將函數調用添加到每個transformResponse
回調的主體中。
您可以通過包裝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
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.