import React from 'react';
import { Navigate } from 'react-router-dom';
import { useSelector } from 'react-redux';
const ProtectedRoute = ({ children, requiredRole }) => {
const { isAuthenticated, user } = useSelector(state => state.auth);
// 未登录,重定向到登录页
if (!isAuthenticated) {
return ;
}
// 已登录但角色不匹配
if (requiredRole && user?.role !== requiredRole) {
// 根据用户角色重定向到对应页面
if (user?.role === 'teacher') {
return ;
} else if (user?.role === 'student') {
return ;
}
return ;
}
// 验证通过,渲染子组件
return children;
};
export default ProtectedRoute;