面试题答案
一键面试实现思路
- 首先在 React 组件中订阅 Redux store 的变化,获取用户登录状态及权限信息。
- 当检测到用户登录成功(可通过 Redux 中登录状态标志判断),获取权限信息。
- 根据权限信息,使用
Redirect
组件进行重定向。
核心代码片段
import React from'react';
import { useSelector } from'react-redux';
import { Redirect } from'react-router-dom';
const UserRedirect = () => {
const user = useSelector(state => state.user); // 假设 user 信息存储在 state.user 中
if (user.isLoggedIn) {
const { role } = user;
if (role === 'admin') {
return <Redirect to="/admin/dashboard" />;
} else if (role === 'user') {
return <Redirect to="/user/profile" />;
}
}
return null;
};
export default UserRedirect;
假设 Redux store 中 state.user
结构如下:
{
isLoggedIn: true,
role: 'admin'
}