fix(admin): 修复首次进入系统后点击任意导航被拉回 dashboard #67
Reference in New Issue
Block a user
No description provided.
Delete Branch "fix/route-redirect-keepalive"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
问题
首次进入系统(访问根路径
/)后,点击任意菜单/按钮都会被强制拉回/dashboard,刷新页面后才恢复正常。根因
RouteKeeper(路由保活)会把首页 index 节点缓存并保持挂载,DefaultRoute中的声明式<Navigate>会随缓存节点在后续每次路由变化时重新触发replace,把当前页面强制替换回落地页;刷新后不再经过/,缓存中无该节点,所以恢复正常。修复
apps/admin/src/components/DefaultRoute.tsx:改为 effect 导航,仅在确实处于/且已算出落地页时跳转一次(navigate用 ref 持有避免 effect 空转)。同时新增集成测试覆盖「首次进入/→ 跳转一次 → 后续导航不被劫持 → 回到/仍能重定向」。验证
/dashboard