Skip to content

Latest commit

 

History

History
200 lines (151 loc) · 4.83 KB

File metadata and controls

200 lines (151 loc) · 4.83 KB

🎯 主页显示0问题 - 修复完成

✅ 问题已解决!

原因

前端 App.tsx 中的 account 数据加载条件有误:

修改前

const { data: account } = useSWR<AccountInfo>(
  currentPage === 'trader' && selectedTraderId  // ❌ 条件过严
    ? `account-${selectedTraderId}`
    : null,
  () => api.getAccount(selectedTraderId)
);

问题: 只有当 currentPage === 'trader' 时才会加载数据,导致主页 dashboard 无法获取数据。

修改后

const { data: account } = useSWR<AccountInfo>(
  selectedTraderId ? `account-${selectedTraderId}` : null,  // ✅ 简化条件
  () => api.getAccount(selectedTraderId),
  {
    onError: (err) => console.error('❌ Account API error:', err),
    onSuccess: (data) => console.log('✅ Account data loaded:', data?.total_equity)
  }
);

效果: 只要有 selectedTraderId,就会加载数据,无论在哪个页面。


📦 部署步骤

方法1:Git Push 自动部署(推荐)

cd /Users/guoyingcheng/dreame/code/nofx

# 1. 提交前端修改
git add web/src/App.tsx
git commit -m 'fix: 修复主页显示0问题 - 移除account数据加载的currentPage条件限制

- 问题:主页显示总净值0,但详情页显示正常(99.92 USDT)
- 原因:account数据只在currentPage=trader时加载,导致dashboard页面无数据
- 修复:简化SWR加载条件,只要有selectedTraderId就加载数据
- 添加:onError和onSuccess回调,便于调试

修改文件:web/src/App.tsx:121-131'

# 2. 推送到Git
git push

Vercel会自动检测到代码变更并重新部署前端(约2-3分钟)。

方法2:手动部署到Vercel

如果Vercel没有自动部署,可以手动触发:

  1. 访问 Vercel Dashboard
  2. 找到 nofx-web 项目
  3. 点击 Redeploy 按钮
  4. 选择最新的commit

🔍 验证修复

1. 等待部署完成

  • Vercel: 约2-3分钟
  • 部署完成后,Vercel会显示新的部署URL

2. 清除浏览器缓存

1. 访问 https://web-pink-omega-40.vercel.app/dashboard
2. 按 Ctrl+Shift+R (Windows) 或 Cmd+Shift+R (Mac) 强制刷新
3. 或者在开发者工具中勾选 "Disable cache"

3. 检查显示

预期结果

✅ 总净值: 99.91 USDT (不再是 0.00)
✅ 可用余额: 99.91 USDT (不再是 0.00)
✅ 总盈亏: -0.09 USDT (不再是 0.00)
✅ 盈亏率: -0.09% (不再是 -100%)

4. 查看浏览器控制台

按F12打开控制台,应该看到:

✅ Account data loaded: 99.914

如果看到错误:

❌ Account API error: [错误信息]

说明API调用失败,需要检查认证或网络问题。


📊 测试结果

后端API ✅ 完全正常

$ curl https://nofx-gyc567.replit.app/api/account

{
  "total_equity": 99.914,         # ✅ 正确
  "available_balance": 99.912,    # ✅ 正确
  "wallet_balance": 99.912,       # ✅ 正确
  "total_pnl": -0.088,
  "total_pnl_pct": -0.088
}

CORS配置 ✅ 正确

access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, DELETE, OPTIONS
access-control-allow-headers: Content-Type, Authorization

前端构建 ✅ 成功

✓ 2744 modules transformed.
dist/assets/index-BWG5e0ST.js   602.22 kB
✓ built in 1m 39s

🎉 修复总结

项目 修改前 修改后
主页总净值 0.00 USDT ❌ 99.91 USDT ✅
主页可用余额 0.00 USDT ❌ 99.91 USDT ✅
最近决策净值 99.92 USDT ✅ 99.92 USDT ✅

修改文件:1个(web/src/App.tsx修改行数:10行 风险等级:🟢 低 - 仅简化数据加载条件 兼容性:✅ 向下兼容 - 不影响其他功能


🛡️ 预防措施

为防止类似问题再次发生,建议:

  1. 添加单元测试 - 测试不同页面状态下的数据加载
  2. 添加错误边界 - 捕获并显示数据加载错误
  3. 添加加载状态 - 显示"加载中..."而不是默认"0.00"
  4. Sentry集成 - 监控生产环境错误

📞 如遇问题

问题1:部署后仍显示0

可能原因

  • 浏览器缓存未清除
  • Vercel部署未完成
  • 前端代码未更新

解决方案

  1. 强制刷新页面(Ctrl+Shift+R)
  2. 检查Vercel部署状态
  3. 检查浏览器控制台错误信息

问题2:控制台显示API错误

可能原因

  • 认证token失效
  • 后端服务异常
  • 网络连接问题

解决方案

  1. 重新登录获取新token
  2. 检查后端服务日志
  3. 测试后端API可用性

问题3:部分数据显示0,部分正常

可能原因

  • 数据类型不匹配
  • 后端返回数据结构变化

解决方案: 查看详细诊断报告:DASHBOARD_ZERO_ISSUE_DIAGNOSIS.md


修复完成时间: 2025-11-20 修复人员: Claude Code 状态: ✅ 代码修复完成,等待部署验证