头图

Antd Pro V5 登录后重新远程请求菜单

GhostCoder
English

因为路由是存在 initialState 这个 Hooks 中,如下:

const { initialState, setInitialState } = useModel('@@initialState');

所以只需要在登录的逻辑中利用这段代码即可:

// 自己写的远程请求接口
import { R_Menu } from '@/services/builder';
// 导入系统默认的菜单
import SystemRoutes from '@/../config/routes';
// 改写登录页的逻辑
const fetchUserInfo = async () => {
  const userInfo = await initialState?.fetchUserInfo?.();
  // 这里是成功返回用户信息之后的逻辑
  if (userInfo) {
    // 调用自己写的请求菜单
    const menu = await R_Menu();
    // 合并系统路由 & 业务菜单
    const freshMenu = SystemRoutes.concat(menu);
    // 覆盖系统当前的路由
    setInitialState({
      ...initialState,
      menuData: freshMenu,
      currentUser: userInfo,
    });
  }
};
阅读 157
Stay hungry,Stay foolish
252 声望
3 粉丝
0 条评论
你知道吗?

Stay hungry,Stay foolish
252 声望
3 粉丝
宣传栏