我有一个对象数组,这些对象基本上是侧边栏项目.每个物体都有一个MUI 5图标.在侧边栏组件中,我将其呈现在map函数中.我想要突出显示选定的项目…我设法更改了字体 colored颜色 ,但不知道如何更改图标 colored颜色 .

因此,问题是如何更改Sidebar.tsx中的图标 colored颜色 ?

routes.tsx

export const SIDEBAR_PATHS = [
  {
    id: 1,
    path: PATHS.projects,
    name: 'Projects',
    icon: <AccountTreeIcon />,
  },
  {
    id: 2,
    path: PATHS.faces,
    name: 'Faces',
    icon: <FaceRetouchingNaturalIcon />,
  },
];

Sidebart.tsx

    {SIDEBAR_PATHS.map(({ id, path, name, icon }) => (
      <ListItem key={id} disablePadding>
        <ListItemButton disableRipple onClick={() => navigate(path)} selected={path === pathname}>
          {icon}
          <ListItemText primary={name} primaryTypographyProps={{ fontWeight: 500 }} />
        </ListItemButton>
      </ListItem>
    ))}

推荐答案

但不知道如何更改图标 colored颜色 .

我会将您的icon字段从JSX类型(已经称为Reaction组件)更改为FC(Reaction组件),这样您就可以在以后调用它并向其传递props .

然后,只需根据selectedprops 调整图标的 colored颜色 即可.

export const SIDEBAR_PATHS = [
  {
    id: 1,
    path: PATHS.projects,
    name: 'Projects',
    icon: AccountTreeIcon
  },
  {
    id: 2,
    path: PATHS.faces,
    name: 'Faces',
    icon: FaceRetouchingNaturalIcon,
  },
];

{SIDEBAR_PATHS.map(({ id, path, name, icon }) => {
  const Icon = icon;      

  return (
    <ListItem key={id} disablePadding>
      <ListItemButton disableRipple onClick={() => navigate(path)} selected={path === pathname}>
        <Icon style={{ color: selected ? 'green' : 'red'} />
              //  ^^^^^^^^^^^^^^^^ toggle the color of icon

        <ListItemText primary={name} primaryTypographyProps={{ fontWeight: 500 }} />
      </ListItemButton>
    </ListItem>
  );
})}

Reactjs相关问答推荐

eslint -无法解析模块的路径@web3modal/ethers/react导入/no-unresolved

如何使用React防止并发注册并处理Firestore数据库中的插槽可用性

两条react 路由的行为不同.有没有人能解释一下,我已经找了好几天了

在Reaction中单击并显示子组件延迟/动画

无法将react 路由状态从路由传递给子组件

为什么在页面重新加载时Location.State变得未定义?

如何使用 React 获取表单中的所有值?

我从 S3 存储桶下载图像时收到错误

将 useRef 与 useImperativeHandle 一起使用时,React 不会重新渲染

React - 将一个充满空值的无限大小的数组存储在 ref 中是否可以,或者我应该重置数组吗?

无法读取未定义的属性(读取值)...TypeError:无法读取未定义的属性(读取值)

RTK 查询Mutations 在 StrictMode 中执行两次

使用 Vite 的 React 中的路由无法正常工作(构建中)

如果传递给挂钩的数据需要事先修改,如何使用自定义挂钩?

在 redux 中分派到另一个减少时状态值不会改变

如何使用 React Router 在 React 中正确同步 useEffect 和 useLocation 挂钩?

使用 React、Redux 和 Firebase 的无限循环

material uireact ,如何从表格中删除阴影?试图找到 api 但找不到正确的属性

添加禁用的默认选项以 Select

仅react material 表前端分页