【发布时间】:2021-04-19 18:08:06
【问题描述】:
React 和 Material UI 的新手我不知道如何正确地动态传递颜色,我从 JSON 文件中提取,并且在我的搜索、StackOverflow 或文档中找不到很好的参考。
研究
- Material-ui hoverColor for MenuItem component?
- How can I access a hover state in reactjs?
- How do I change Material-UI MenuItem background on hover change from AutoComplete props?
- Material UI inline styling - specific component colours
尝试
给定 JSON 文件:
[
{
"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 或者我是否需要内联?
【问题讨论】:
标签: reactjs material-ui