更改 MUI 的活动样式 table
Change active style of MUI table
我有一个 table,我可以在其中对输入进行排序,就像在 mui 网站上的“排序和选择”下一样:
https://material-ui.com/components/tables/
我想要的是改变选择排序的header-text的颜色。我尝试了以下方法,但仅设法以这种方式更改了 background-color(简化的代码示例):
const useStyles = makeStyles({
active: {
color: "yellow",
backgroundColor: "yellow",
},
});
function Example() {
const classes = useStyles();
// functions for sorting etc. here left out
return (
<TableContainer component={Paper}>
<Table>
<TableHead>
<TableRow>
<StyledTableCell>
<TableSortLabel
active={valueToOrderBy === "column"}
direction={
valueToOrderBy == "column" ? orderDirection : "asc"
}
onClick={createSortHandler("column")}
classes={{ active: classes.active }}
>
column
</TableSortLabel>
</StyledTableCell>
</TableRow>
</TableHead>
<TableBody>
// data that comes in the column
</TableBody>
</Table>
</TableContainer>
)}
因此,当我单击该列时,该列已排序并且 header-text 的 background-color 变为黄色,但不是文本颜色。我试过更改主题活动和选择的颜色,但这也没有用。
回答了同样的问题。
问题是颜色是在 root&$active
选择器中定义的。 active
选择器仅用作“伪”选择器,如 source.
中所示
以下代码将正确覆盖这两个属性:
const useStyles = makeStyles({
root: {
'&$active': {
color: "yellow",
backgroundColor: "yellow",
},
},
active: {}, // pseudo
});
...
<TableSortLabel
active={valueToOrderBy === "column"}
direction={
valueToOrderBy == "column" ? orderDirection : "asc"
}
onClick={createSortHandler("column")}
classes={{ root: classes.root, active: classes.active }}
>
column
</TableSortLabel>
我有一个 table,我可以在其中对输入进行排序,就像在 mui 网站上的“排序和选择”下一样: https://material-ui.com/components/tables/
我想要的是改变选择排序的header-text的颜色。我尝试了以下方法,但仅设法以这种方式更改了 background-color(简化的代码示例):
const useStyles = makeStyles({
active: {
color: "yellow",
backgroundColor: "yellow",
},
});
function Example() {
const classes = useStyles();
// functions for sorting etc. here left out
return (
<TableContainer component={Paper}>
<Table>
<TableHead>
<TableRow>
<StyledTableCell>
<TableSortLabel
active={valueToOrderBy === "column"}
direction={
valueToOrderBy == "column" ? orderDirection : "asc"
}
onClick={createSortHandler("column")}
classes={{ active: classes.active }}
>
column
</TableSortLabel>
</StyledTableCell>
</TableRow>
</TableHead>
<TableBody>
// data that comes in the column
</TableBody>
</Table>
</TableContainer>
)}
因此,当我单击该列时,该列已排序并且 header-text 的 background-color 变为黄色,但不是文本颜色。我试过更改主题活动和选择的颜色,但这也没有用。
问题是颜色是在 root&$active
选择器中定义的。 active
选择器仅用作“伪”选择器,如 source.
以下代码将正确覆盖这两个属性:
const useStyles = makeStyles({
root: {
'&$active': {
color: "yellow",
backgroundColor: "yellow",
},
},
active: {}, // pseudo
});
...
<TableSortLabel
active={valueToOrderBy === "column"}
direction={
valueToOrderBy == "column" ? orderDirection : "asc"
}
onClick={createSortHandler("column")}
classes={{ root: classes.root, active: classes.active }}
>
column
</TableSortLabel>