2.2 KiB
2.2 KiB
购买按钮修复日志 - 2026-03-20(手动地址模式)
修复时间
2026-03-20
问题描述
trc-ico.newassetchain.io 购买区域:用户点击"Enter address manually"输入地址并点击 Confirm 后, 购买按钮没有出现,界面无任何变化。
根本原因
文件: client/src/pages/Home.tsx
EVMPurchasePanel 组件中,WalletSelector 的 onAddressDetected 回调只显示了 toast 提示,
没有更新组件状态,导致 wallet.isConnected 仍然为 false,购买按钮不渲染。
// 修复前(问题代码)
onAddressDetected={(addr) => {
toast.success(`Connected: ${addr.slice(0, 6)}...${addr.slice(-4)}`);
// ← 没有更新任何状态!
}}
修复方案
在 EVMPurchasePanel 中添加 manualAddress 状态:
const [manualAddress, setManualAddress] = useState<string | null>(null);
const effectiveAddress = wallet.address || manualAddress;
const isManualMode = !wallet.isConnected && !!manualAddress;
修改 onAddressDetected 回调:
onAddressDetected={(addr) => {
setManualAddress(addr); // ← 保存手动输入的地址
toast.success(`Address confirmed: ${addr.slice(0, 6)}...${addr.slice(-4)}`);
}}
修改条件渲染:
!wallet.isConnected && !manualAddress→ 显示 WalletSelectorisManualMode→ 显示购买按钮(提示需要连接钱包完成链上交易)wallet.isConnected→ 显示正常购买按钮
构建信息
- 构建时间: 2026-03-20
- 新 bundle: index-By9gUhW4.js (815.67 kB)
- 构建耗时: 7.18s
- 1858 modules transformed
部署步骤
- 修改 client/src/pages/Home.tsx
- 执行 pnpm run build
- 删除 dist/public/manus 目录
- PM2 重启: pm2 restart nac-presale-test
- 验证: HTTP 200 响应
备份文件
- Home.tsx 备份: client/src/pages/Home.tsx.bak.manual_addr_fix_20260320
- dist 备份: dist/public.bak.manual_addr_fix_20260320
Git 提交
- commit hash:
5136b59 - 提交信息: fix: 修复手动输入地址后购买按钮不显示的问题
- 推送到: nacadmin/nac-presale master
验证结果
- 用户输入地址 0x1234...7890 并点击 Confirm
- 购买按钮出现:"Connect Wallet to Buy 5.00K XIC"
- 地址信息栏显示手动地址(琥珀色样式)
- HTTP 200 响应正常