共计 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
});
}
};
正文完