Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🧐[问题]@ant-design/[email protected]版本,通过collapsedButtonRender实现自定义按钮,外部会包裹一层标签,如何去除外部包裹的标签。 #9012

Open
1029800858 opened this issue Feb 13, 2025 · 0 comments

Comments

@1029800858
Copy link

🧐 问题描述

由于需要实现类似以下效果
Image
想通过collapsedButtonRender实现自定义按钮,通过绝对定位,定位至菜单右侧,但发现渲染后外部会包裹一层标签,渲染后的结果:

Image

请问如何去除外部包裹的标签。

💻 示例代码

`

   <Prolayout
    logo={settings.titleIcon || logo}
    formatMessage={formatMessage}
    siderWidth={defaultSettings.siderWidth}
    {...props}
    {...settings}
    collapsed={collapsed}
    menuHeaderRender={(logoDom, titleDom) => (
      <Link to="/">
        {logoDom}
        {titleDom}
      </Link>
    )}
    fixedHeader={true}// 固定头部
    fixSiderbar={true}// 固定侧边栏
    headerRender={headerRender}
    onCollapse={handleMenuCollapse}

    menuItemRender={(menuItemProps, defaultDom) => {
      if (menuItemProps.isUrl || menuItemProps.children || !menuItemProps.path) {
        return defaultDom
      }
      return <Link to={menuItemProps.path}>
        {defaultDom}
      </Link>;
    }}

    itemRender={(route, params, routes, paths) => {
      const first = routes.indexOf(route) === 0;
      return first ? (
        <Link to={paths.join('/')}>
          {formatMessage({id:route.breadcrumbName})}
        </Link>
      ) : (
        <span>
          {formatMessage({id:route.breadcrumbName})}
        </span>
      );
    }}
    collapsedButtonRender={()=>(<Collapsed collapsed={collapsed}
      setCollapsed={setCollapsed}></Collapsed>)}
    menuFooterRender={(props) => {
      console.log("menuFooterRender::",props)
      if (props?.collapsed) return undefined;
      return (
        <div className="pt-4 border-t border-white/20">
      <div className="flex items-center p-2 mb-2">
        <div className="w-8 h-8 rounded-full bg-white/20 flex items-center justify-center">
          <UserOutlined />
        </div>
        <span className="ml-2">用户名称</span>
      </div>
      <div className="flex items-center p-2">
        <i className="fas fa-globe mr-2"></i>
        <span>语言</span>
      </div>
      <div className="flex items-center p-2">
        <i className="fas fa-sign-out-alt mr-2"></i>
        <span>退出登录</span>
      </div>
    </div>
      );
    }}
    footerRender={footerRender}
    menuDataRender={menuDataRender}
    rightContentRender={() => <RightContent />}
    >
      <Authorized authority={authorized!.authority} noMatch={noMatch}>
      {children}
      </Authorized>
    </ProLayout>

`

🚑 其他信息

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant