Files
vf_react/src/components/ProtectedRouteRedirect.js
zdl 419ea89145 fix(auth): 优化 ProtectedRoute 加载状态和逻辑
- 使用 PageLoader 替换白色加载背景
- 未登录时不渲染子组件,显示加载状态
- 登录成功后才显示受保护内容

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-25 18:48:33 +08:00

26 lines
744 B
JavaScript

// src/components/ProtectedRouteRedirect.js - 跳转版本
// 未登录时跳转到首页,用于三级页面(详情页)
import React from 'react';
import { Navigate } from 'react-router-dom';
import { useAuth } from '../contexts/AuthContext';
import PageLoader from './Loading/PageLoader';
const ProtectedRouteRedirect = ({ children }) => {
const { isAuthenticated, isLoading, user } = useAuth();
// 显示加载状态
if (isLoading) {
return <PageLoader message="正在验证登录状态..." />;
}
// 未登录,直接跳转到首页
if (!isAuthenticated || !user) {
return <Navigate to="/home" replace />;
}
// 已登录,正常渲染子组件
return children;
};
export default ProtectedRouteRedirect;