reactjs - 如何在 MUI 5 中使用美元符号 ($) 覆盖样式?
问题描述
下面的代码来自 MUI 5,带有 MUI 4 解决方案,用于在悬停时更改输入字段。但这显然不起作用,想知道如何在 MUI 5 中实现这一点,似乎无法从TextField
悬停时改变颜色。这是createTheme
在 MUI 5 中使用的
components: {
MuiInputLabel: {
styleOverrides: {
root: {
color: arcBlue,
fontSize: '1rem',
},
},
},
MuiInput: {
styleOverrides: {
underline: {
'&:before': {
borderBottom: `2px solid ${arcBlue}`,
},
// Code from material ui 4
'&:hover:not($disabled):not($focused):not($error):before': {
borderBottom: `2px solid ${arcGrey}`,
},
},
},
},
},
解决方案
$
语法是 JSS 的一个特性,在MUI v5中,它们切换到情感,所以它不再起作用了,你现在有 2 个选项:
使用纯字符串
在本节中,您可以看到描述不同 MUI 组件状态的类名列表:
状态 | 全局类名 |
---|---|
积极的 | .Mui-active |
检查 | .Mui-checked |
完全的 | .Mui-completed |
禁用 | .Mui-disabled |
错误 | .Mui-error |
展开 | .Mui-expanded |
焦点可见 | .Mui-focusVisible |
专注 | .Mui-focused |
必需的 | .Mui-required |
选择 | .Mui-selected |
'&&:hover:not(.Mui-disabled):not(.Mui-error):before': {
borderBottom: `5px solid purple`
}
使用常量
如果您不想硬编码类名,大多数 MUI 组件都有自己的类常量:
import { [component]Classes } from "@mui/material/[Component]";
import { inputClasses } from "@mui/material/Input";
[`&&:hover:not(${inputClasses.disabled}):not(${inputClasses.focused}):before`]: {
borderBottom: `5px solid purple`
}
参考
推荐阅读
- javascript - 如何导入 JavaScript 库的源文件?
- java - 如何从对象调用覆盖方法
- angular - localhost:4200 和 localhost:4200/projectName 有什么区别?
- highcharts - 使用 highcharts-vue 和 axios 绘制可变数量的系列
- spring - 用于实践的 Spring 和 Hibernate 项目
- tcl - 如何从 -command 选项中的代码获取结果
- reactjs - 如何为每个 Material-UI TableRow 添加 react-router?
- python - python pandas不计算订单对
- javascript - 在发送到服务器之前编辑数据(特别是浏览器指纹)?
- canvas - 三.js球体改变透明度无效?