当前位置: 首页 > 知识库问答 >
问题:

在材质UI中,我如何动态地将颜色传递给我的样式?

孟德曜
2023-03-14

对于React和Material UI来说,我很难理解如何正确地动态传递我从JSON文件中提取的颜色,但我在搜索、StackOverflow或文档中没有找到一个很好的引用。

  • MenuItem组件的材质-UI hoverColor?
  • 如何访问ReactJS中的悬停状态?
  • 如何从自动完成道具更改悬停时的材质-UI菜单项背景?
  • 材质UI内联样式特定的组件颜色

给定JSON文件:

json prettyprint-override">[
  {
    "label": "Home",
    "href": "/",
    "colorHover": ""
  },
  {
    "label": "Monday",
    "href": "/mon",
    "colorHover": "#35c5bd"
  },
  {
    "label": "Tuesday",
    "href": "/tues",
    "colorHover": "#fa8b25"
  },
  {
    "label": "Wednesday",
    "href": "/wed",
    "colorHover": "#f26531"
  }
]

我将它放入组件中,并用以下方法循环遍历:

  const getDrawerChoices = () => {
    return headersData.map(({ label, href, colorHover }) => {
      const colorChange = colorHover === '' ? 'inherit' : colorHover

      return (
        <Link
          {...{
            component: RouterLink,
            to: href,
            color: 'inherit',
            style: { textDecoration: 'none' },
            key: label,
          }}
        >
          <MenuItem className={menuItem.hover(colorChange)}>{label}</MenuItem>
        </Link>
      )
    })
  }

物料UI样式:

const useStyles = makeStyles(colorChange => ({
  menuItem: {
    '&:hover': {
      backgroundColor: `${colorChange} !important`,
    },
  },
}))

但我犯了个错误。如何将颜色值动态传递给useStyles?

共有1个答案

仉昱
2023-03-14

您必须创建一个自定义的Makestyle,将一个道具传递给每个键,如下所示:

const useStyles = makeStyles({
  root: (props) => ({
    "&:hover": {
      backgroundColor: props.hoverColor
    }
  })
});

我会留下一个沙盒链接,上面有我测试的内容和文档的链接。还有什么我能做的请告诉我。

 类似资料:
  • 材料规格显示禁用按钮状态,看起来是灰色的。 https://www.material.io/design/components/buttons.html#切换按钮 只是默认情况下没有在材料Android组件中实现?材料组件是否定义了禁用的按钮状态器?

  • 如何将 RelayState 正确传递到 Okta 端 ACS URL,以便它到达输入的 IdP? 我把 在 ACS URL 上,IdP 得到一个 SAMLRequest,中继状态为 哪个解码为 . 如果我把<代码>?RelayState=相反,如我所料,带有SAMLRequest的RelayState为空。 我附上了NetworkData.xml这是从Internet Explorer捕获的。在

  • 问题内容: 我想将一些数据传递给$ mdDialog。实际上,我在一个单独的文件中有两个控制器。这是我的控制器代码 我想tp将profileId传递给profileController并显示配置文件数据。在配置文件控制器中,我以此获取数据 但是这个错误出现在控制台中 这是什么错误以及如何解决? 问题答案: 我添加了配置文件模板,这是由于错误。通过删除它,我的问题解决了。

  • 问题内容: 给卡代码在这里: 卡 我如何更新卡片样式或任何材料UI样式 如下: 当我尝试最新的时,我得到了 当我更新代码为: 也 代替 我在网页上弄乱了组件卡样式。 顺便说一句,我通过以下道具: 请帮忙! 问题答案: 该答案是在4.0版之前严重过时的! 认真地说,如果要对功能组件进行样式设置,请使用。 在詹姆斯谭答案是4.x版本的最佳答案 下面的任何内容都是古老的: 使用时,您可以访问,但不能访问

  • 问题内容: 我正在使用Material UI并尝试将普通的CSS类转换为js文件。 如何在材料ui模式中转换这些CSS样式。我没有看到任何有关如何为元素设置“活动”状态和嵌套悬停样式的示例。与此类高级方案相关的更多文档会有所帮助。 这是我在转换这些内容方面走了多少。 如何将其转换为材质样式 .navLink:hover > div:hover { 我尝试过的东西。 任何帮助表示赞赏。 问题答案:

  • 我不知道如何在材质UI中居中放置按钮。这是我的代码: 我怎样才能使我的按钮居中?