reactjs 如何更改多媒体x数据网格排序图标和菜单图标的颜色

j0pj023g  于 2023-02-22  发布在  React
关注(0)|答案(2)|浏览(126)

我看到有filterIconmenuIconmenuIconButton属性,但我不知道如何应用它们。

<DataGrid
   rows={rows}
   columns={columns}
   rowsPerPageOptions={rowsPerPage}
   disableSelectionOnClick
   // should be some stuff here
/>
8xiog9wr

8xiog9wr1#

我尝试过这种方法,首先定义样式

const styles = theme => ({
  activeSortIcon: {
    opacity: 1,
    color : 'blue',
  },
  inactiveSortIcon: {
    opacity: 0.4,
    color : 'green',
  },
});

然后在DataGrid组件中根据您的逻辑使用这些样式

<DataGrid
   rows={rows}
   columns={columns}
   rowsPerPageOptions={rowsPerPage}
   disableSelectionOnClick
   classes={{
   icon: ((orderBy === column.id) ? classes.activeSortIcon : 
   classes.inactiveSortIcon ) 
   }}
   // should be some stuff here
/>

您可以添加不同的图标样式,而不是使用这种方法的颜色。希望这种方法可能会有帮助。请让我知道如果这工作。
参考:How to change the style of sorting icon in Material UI table?

f2uvfpb9

f2uvfpb92#

对于那些仍然对MUI数据网格图标样式感兴趣的人,您还可以使用样式化组件而不是使用类。

const StyledDataGrid = styled(DataGrid)((theme) => ({
"& .MuiDataGrid-sortIcon": {
opacity: 1,
color: "white",
},
"& .MuiDataGrid-menuIconButton": {
opacity: 1,
color: "white"
},
}));

既然我们已经相应地声明了样式,现在您可以返回样式化的组件:

<StyledDataGrid
rows={x}
columns={columnDef}
autoHeight
...more stuff if you want...
/>

这就对了!你不需要声明类或任何东西。而且,样式化组件允许你用正确的引用(MuiDataGrid-columnHeaders、MuiDataGrid-columnHeaderTitle、Mui-selected等)来样式化数据网格中的所有内容。
请随意查看有关MUI样式组件的说明:https://mui.com/system/styled/

相关问题