前端 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,就会加载数据,无论在哪个页面。
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 pushVercel会自动检测到代码变更并重新部署前端(约2-3分钟)。
如果Vercel没有自动部署,可以手动触发:
- 访问 Vercel Dashboard
- 找到
nofx-web项目 - 点击 Redeploy 按钮
- 选择最新的commit
- Vercel: 约2-3分钟
- 部署完成后,Vercel会显示新的部署URL
1. 访问 https://web-pink-omega-40.vercel.app/dashboard
2. 按 Ctrl+Shift+R (Windows) 或 Cmd+Shift+R (Mac) 强制刷新
3. 或者在开发者工具中勾选 "Disable cache"
预期结果:
✅ 总净值: 99.91 USDT (不再是 0.00)
✅ 可用余额: 99.91 USDT (不再是 0.00)
✅ 总盈亏: -0.09 USDT (不再是 0.00)
✅ 盈亏率: -0.09% (不再是 -100%)
按F12打开控制台,应该看到:
✅ Account data loaded: 99.914
如果看到错误:
❌ Account API error: [错误信息]
说明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
}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行
风险等级:🟢 低 - 仅简化数据加载条件
兼容性:✅ 向下兼容 - 不影响其他功能
为防止类似问题再次发生,建议:
- 添加单元测试 - 测试不同页面状态下的数据加载
- 添加错误边界 - 捕获并显示数据加载错误
- 添加加载状态 - 显示"加载中..."而不是默认"0.00"
- Sentry集成 - 监控生产环境错误
可能原因:
- 浏览器缓存未清除
- Vercel部署未完成
- 前端代码未更新
解决方案:
- 强制刷新页面(Ctrl+Shift+R)
- 检查Vercel部署状态
- 检查浏览器控制台错误信息
可能原因:
- 认证token失效
- 后端服务异常
- 网络连接问题
解决方案:
- 重新登录获取新token
- 检查后端服务日志
- 测试后端API可用性
可能原因:
- 数据类型不匹配
- 后端返回数据结构变化
解决方案:
查看详细诊断报告:DASHBOARD_ZERO_ISSUE_DIAGNOSIS.md
修复完成时间: 2025-11-20 修复人员: Claude Code 状态: ✅ 代码修复完成,等待部署验证