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