需求

有时候想使用iframe嵌入一个页面,如果包含头部以及菜单就会变得没这么和谐,需要将头部及菜单隐藏掉

怎么做?

pro提供了路由的配置项,详见  https://pro.ant.design/zh-CN/docs/advanced-menu/#根据路径更换布局

export interface Setting {
  /**
   * @name false 时不展示顶栏
   */
  headerRender?: false;
  /**
   * @name false 时不展示页脚
   */
  footerRender?: false;
  /**
   * @name false 时不展示菜单
   */
  menuRender?: false;
  /**
   * @name false 时不展示菜单顶栏
   */
  menuHeaderRender?: false;

  /**
   * @name 固定顶栏
   **/
  fixedHeader: boolean;

  /**
   * @name 固定菜单
   */
  fixSiderbar: boolean;

  /**
   * @name theme for nav menu
   * @name 导航菜单的主题
   */
  navTheme: 'dark' | 'light' | 'realDark' | undefined;
  /**
   * @name nav menu position: `side` or `top`
   * @name 导航菜单的位置
   * @description side 为正常模式,top菜单显示在顶部,mix 两种兼有
   */
  layout: 'side' | 'top' | 'mix';
  /**
   * @name 顶部导航的主题,mix 模式生效
   */
  headerTheme: 'dark' | 'light';
}

怎么使用?

route配置中设定(要找对位置,有些在routes.ts,有些在config.ts)

经验1、如果读取后台菜单进行呈现,route里面的配置是不生效的

需要直接给menuData指定对应的属性

关于自定义菜单可见:  https://cscoder.cn/docs/front-end/react/ant-design-pro-custom-menu.html

在自定义菜单中指定是否显示头部、菜单的示例

initialState?.menuData?.splice(0, 0, {
    path: item.path,
    name: item.name,
    hideInMenu: true,
    headerRender: false,
    footerRender: false,
    menuRender: false,
    menuHeaderRender: false
});

经验2、如果某个页面不在读取的后台菜单中(也就是在菜单中看不到),是否受控于route?

确实受控于route,可以通过path呈现指定的component,但是是否显示头部、菜单的控制是不生效的