You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改MUI Toolpad折叠菜单图标?自定义侧边栏切换图标方案

解决MUI Toolpad Dashboard折叠菜单图标自定义问题

1. 能否通过修改默认菜单图标?

可以。MUI Toolpad的<AppProvider>支持通过layout配置项自定义侧边栏的菜单图标,这是官方提供的标准自定义方式。

2. 整合自定义getMenuIcon回调的步骤

假设你的DashboardLayoutBranding组件是应用布局的一部分,按以下步骤整合:

步骤1:导入所需图标组件

确保已安装@mui/icons-material包,然后导入目标图标:

import GridGoldenratioOutlinedIcon from '@mui/icons-material/GridGoldenratioOutlined';
import SegmentOutlinedIcon from '@mui/icons-material/SegmentOutlined';

步骤2:在AppProvider中配置getMenuIcon回调

在包裹应用的<AppProvider>中,传入包含sidebar配置的layout属性,定义getMenuIcon函数根据折叠状态切换图标:

import { AppProvider } from '@mui/toolpad-core';
import DashboardLayoutBranding from './path-to-your-component/DashboardLayoutBranding';

const RootApp = () => {
  const customLayout = {
    sidebar: {
      getMenuIcon: ({ collapsed }) => {
        return collapsed ? <SegmentOutlinedIcon /> : <GridGoldenratioOutlinedIcon />;
      }
    }
  };

  return (
    <AppProvider layout={customLayout}>
      <DashboardLayoutBranding />
      {/* 其他应用内容 */}
    </AppProvider>
  );
};

export default RootApp;

步骤3:验证生效逻辑

getMenuIcon回调会接收包含collapsed布尔值的参数:

  • 侧边栏展开时,collapsed为false,返回GridGoldenratioOutlinedIcon
  • 侧边栏折叠时,collapsed为true,返回SegmentOutlinedIcon

只要确保<AppProvider>包裹了整个应用(包括你的DashboardLayoutBranding组件),自定义图标就会替代默认图标生效。

内容的提问来源于stack exchange,提问作者rinu mv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 01:02:34