【问题标题】:Combine conditional styles and hover in ReactJS在 ReactJS 中组合条件样式和悬停
【发布时间】:2020-04-22 01:18:17
【问题描述】:

我有一个问题,我想实现一个条件样式和一个悬停函数(对于 TableRows)。单独使用两者都可以正常工作,但一起悬停功能不起作用。

CSS

const StyledTableRow = withStyles((theme) => ({
root: {
    tableRow: {
        "&$hover:hover": {
            backgroundColor: "blue"
        }
    },
},
}))(TableRow);

JSX

<TableBody>
                {RankingData.map((row) => (
<StyledTableRow hover
                                    className={classes.tableRow}
                                    key={row.name}
                                    style ={(
                                        row.remaining === "2" ||
                                        row.remaining === "1" )
                                        ? { background : " #ffff66" }:{ background : " 
#ff9999" }}>
                        <StyledTableCell align="right" size= 'small'>{row.starters} 
</StyledTableCell>
                        <StyledTableCell align="right" size= 'small'>{row.remaining} 
</StyledTableCell>
                    </StyledTableRow>
                ))}
            </TableBody>

有谁知道我必须做什么才能使条件格式和悬停一起工作?

提前谢谢你!

【问题讨论】:

    标签: css reactjs webstorm jsx


    【解决方案1】:

    难道你在style 中使用background 而在hover 中使用backgroundColor?尽量只使用backgroundColorbackground

    编辑

    我想我明白了

    Material UI docs

    正如我从文档中了解到的,您用来设置样式的语法用于覆盖组件上的现有类。

    根据 TableRow here 上的文档,tableRow 类不存在。这就是为什么如果你改变它的样式,什么都不会改变。

    所以这里:

    https://codesandbox.io/s/material-demo-pl6sb

    【讨论】:

    • 感谢您的想法。我试过了,但不幸的是,它没有帮助。
    • 如果tableRow: { "&amp;:hover": { backgroundColor: "#000000!important" } } ?
    • !important 似乎也无济于事。我还注意到:无论我在 StyledTableRow 常量中设置哪种背景颜色,悬停颜色都不会改变。这可能是问题的一部分吗?
    • 是的,你如何获得classes?你的班级甚至达到了元素吗?
    • 据我了解,我是通过 className={classes.root} 得到的。当我没有条件格式时它工作正常(虽然不能改变颜色)但是当我添加它时它不适用于格式化样式。
    猜你喜欢
    • 1970-01-01
    • 2022-01-18
    • 2018-05-18
    • 2017-11-17
    • 2020-01-21
    • 2019-10-10
    • 2019-01-07
    • 2021-01-24
    • 2017-04-21
    相关资源
    最近更新 更多