🔄 异步状态初始化修复测试
解决用户状态加载时序问题 + 确保状态正确读取
🎯 关键问题和修复方案
❌
问题识别:
Home.vue在onMounted中立即读取user store状态时,状态还未完全更新
// 问题日志显示 user.ts:85 最终登录状态: true ← store已更新 Home.vue:625 🔐 检查登录状态: undefined ← 但Home.vue读取不到
🔧
解决方案 1:
将initAuth()方法改为异步,使用await等待初始化完成
// user.ts - 修复前 const initAuth = () => { return initializeAuth() } // user.ts - 修复后 const initAuth = async () => { return new Promise<void>((resolve) => { setTimeout(() => { initializeAuth() resolve() }, 0) }) }
⚡
解决方案 2:
在Home.vue中使用异步onMounted + nextTick确保状态同步
// Home.vue - 修复前 onMounted(() => { userStore.initAuth() console.log('状态:', userStore.isLoggedIn) // 可能undefined }) // Home.vue - 修复后 onMounted(async () => { await userStore.initAuth() // 等待初始化完成 await nextTick() // 等待Vue响应式更新完成 console.log('状态:', userStore.isLoggedIn.value) // 正确读取 })
✅
预期效果:
现在用户信息应该正确显示,不再出现undefined状态
🧪 修复效果测试
🔐 模拟登录流程
🏠 检查门户首页
🔄 清除状态重新测试
待测试
💡 提示:如果修复成功,门户首页应该能正确显示用户信息,不再出现"跳转到登录页"的日志
📋 测试日志
[INFO] 异步状态初始化修复测试页面已加载 [INFO] 开始验证修复效果...
🖼️ 修复后的门户首页预览
如果修复成功,下面应该显示完整的门户首页,包括用户信息面板