From ab52a5f8b4fb11c97ced6ffb14f6c5305a976e03 Mon Sep 17 00:00:00 2001 From: moonrailgun Date: Fri, 14 Jan 2022 18:53:37 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=B4=A6=E5=8F=B7?= =?UTF-8?q?=E8=A2=AB=E5=88=A0=E9=99=A4=E5=90=8E=E6=B5=81=E7=A8=8B=E8=A2=AB?= =?UTF-8?q?=E5=8D=A1=E6=AD=BB=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shared/i18n/langs/en-US/translation.json | 2 +- web/src/routes/Main/Provider.tsx | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/shared/i18n/langs/en-US/translation.json b/shared/i18n/langs/en-US/translation.json index 75b78921..85260a8e 100644 --- a/shared/i18n/langs/en-US/translation.json +++ b/shared/i18n/langs/en-US/translation.json @@ -30,7 +30,7 @@ "k35abe359": "Lobby", "k35f486ba": "Nickname", "k35f990b0": "View Detail", - "k3ac17670": "An exception occurred, store creation failed", + "k3ac17670": "An exception occurred, store create failed", "k3b4b656d": "About", "k3bbf3bbd": "Register Account", "k3c502edb": "E-mail can not be empty", diff --git a/web/src/routes/Main/Provider.tsx b/web/src/routes/Main/Provider.tsx index 9a72da63..28ce4675 100644 --- a/web/src/routes/Main/Provider.tsx +++ b/web/src/routes/Main/Provider.tsx @@ -24,16 +24,20 @@ import { setGlobalSocket, setGlobalStore } from '@/utils/global-state-helper'; function useAppState() { const history = useHistory(); - const { value, loading } = useAsync(async () => { + const { value, loading, error } = useAsync(async () => { let userLoginInfo = getGlobalUserLoginInfo(); if (_isNil(userLoginInfo)) { // 如果没有全局缓存的数据, 则尝试自动登录 try { const token = await getUserJWT(); if (typeof token !== 'string') { - throw new Error('Token 不合法'); + throw new Error('Token 格式不合法'); } userLoginInfo = await loginWithToken(token); + + if (userLoginInfo === null) { + throw new Error('Token 内容不合法'); + } } catch (e) { // 当前 Token 不存在或已过期 history.replace( @@ -62,7 +66,7 @@ function useAppState() { const store = value?.store; const socket = value?.socket; - return { loading, store, socket }; + return { loading, store, socket, error }; } /** @@ -70,7 +74,7 @@ function useAppState() { * 在主页存在 */ export const MainProvider: React.FC = React.memo((props) => { - const { loading, store } = useAppState(); + const { loading, store, error } = useAppState(); if (loading) { return ( @@ -80,6 +84,11 @@ export const MainProvider: React.FC = React.memo((props) => { ); } + if (error) { + console.error('[MainProvider]', error); + return
{error.message}
; + } + if (_isNil(store)) { return
{t('出现异常, Store 创建失败')}
; }