From e7e381c17c886ca0bd1f2d4505cd15fe942a9957 Mon Sep 17 00:00:00 2001 From: cp3hnu Date: Thu, 13 Jun 2024 09:20:42 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=BD=91=E7=BB=9C?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E6=B2=A1=E6=9C=89=E6=8D=95=E8=8E=B7=E9=9D=9E?= =?UTF-8?q?200=E7=9A=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- react-ui/src/requestConfig.ts | 48 +++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/react-ui/src/requestConfig.ts b/react-ui/src/requestConfig.ts index 8a976abc..93a30443 100644 --- a/react-ui/src/requestConfig.ts +++ b/react-ui/src/requestConfig.ts @@ -9,12 +9,16 @@ import { clearSessionToken, getAccessToken } from './access'; import { setRemoteMenu } from './services/session'; import { gotoLoginPage } from './utils/ui'; +// [antd: Notification] You are calling notice in render which will break in React 18 concurrent mode. Please trigger in effect instead. +const popupError = (error: string) => { + message.error(error); +}; + /** * Umi Max 网络请求配置 * @doc https://umijs.org/docs/max/request#配置 */ export const requestConfig: RequestConfig = { - errorConfig: {}, requestInterceptors: [ (url: string, options: AxiosRequestConfig) => { const headers = options.headers ?? {}; @@ -30,26 +34,32 @@ export const requestConfig: RequestConfig = { }, ], responseInterceptors: [ - (response: AxiosResponse) => { - const { status, data } = response || {}; - if (status >= 200 && status < 300) { - if (data && (data instanceof Blob || data.code === 200)) { - return response; - } else if (data && data.code === 401) { - clearSessionToken(); - setRemoteMenu(null); - gotoLoginPage(false); - message.error('请重新登录'); - return Promise.reject(response); + [ + (response: AxiosResponse) => { + const { status, data } = response || {}; + console.log(message, data); + if (status >= 200 && status < 300) { + if (data && (data instanceof Blob || data.code === 200)) { + return response; + } else if (data && data.code === 401) { + clearSessionToken(); + setRemoteMenu(null); + gotoLoginPage(false); + popupError('请重新登录'); + return Promise.reject(response); + } else { + popupError(data?.msg ?? '请求失败'); + return Promise.reject(response); + } } else { - console.log(message, data); - message.error(data?.msg ?? '请求失败'); + popupError('请求失败'); return Promise.reject(response); } - } else { - message.error('请求失败'); - return Promise.reject(response); - } - }, + }, + (error: Error) => { + popupError(error.message ?? '请求失败'); + return Promise.reject(error); + }, + ], ], };