From 99e2c5fafc9305e29b2b95b8d0f0e41c688311a4 Mon Sep 17 00:00:00 2001 From: imeepos Date: Tue, 13 Jan 2026 16:06:47 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20Toast=20=E6=9C=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E5=AF=BC=E8=87=B4=20fetch=20=E6=8B=A6?= =?UTF-8?q?=E6=88=AA=E5=99=A8=E5=B4=A9=E6=BA=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 Toast 调用的 try-catch 安全检查 - 修复 "Cannot read properties of undefined (reading 'show')" 错误 - 确保 fetch 拦截器在 Toast 未初始化时也能正常工作 Co-Authored-By: Claude --- lib/fetch-logger.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/fetch-logger.ts b/lib/fetch-logger.ts index 0263074..3c38f2f 100644 --- a/lib/fetch-logger.ts +++ b/lib/fetch-logger.ts @@ -1,5 +1,5 @@ import { router } from 'expo-router'; -import { Toast } from '@/components/ui/Toast'; +import Toast from '@/components/ui/Toast'; import { storage } from './storage'; @@ -80,8 +80,12 @@ export const createFetchWithLogger = (options: FetchLoggerOptions = {}) => { console.warn('🔐 401 未授权,跳转到登录页') isRedirecting = true - // 显示 Toast 提示 - Toast.show('登录已过期,请重新登录') + // 显示 Toast 提示(安全检查) + try { + Toast.show('登录已过期,请重新登录') + } catch (error) { + console.warn('[Toast] 显示失败:', error) + } // 清除过期 Token await storage.removeItem(TOKEN_KEY)