因为路由是存在 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 }); } };