关于antd:Antd-Pro-V5-登录后重新远程请求菜单

56次阅读

共计 597 个字符,预计需要花费 2 分钟才能阅读完成。

因为路由是存在 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?.();
    // 从近程接口拉取菜单
    const menu = await R_Menu();
    // 合并零碎路由 & 业务菜单
    const mergeMenu = SystemRoutes.concat(menu);
    if (userInfo) {
      setInitialState({fetchUserInfo(): Promise<API.CurrentUser | undefined> {return Promise.resolve(undefined);
        }, settings: undefined,
        ...initialState,
        menuData: mergeMenu, // 留神:在这里笼罩即可
        currentUser: userInfo
      });
    }
  };

正文完
 0