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

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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理