Material-ui 类名称在构建时更改,为用户覆盖的每个类名称添加标识符
IT技术
reactjs
material-ui
2021-05-16 22:55:31
2个回答
在 App 主文件中尝试:
import React from 'react';
import { StylesProvider, createGenerateClassName } from '@material-ui/core/styles';
const generateClassName = createGenerateClassName({
productionPrefix: 'some',
});
export default function App() {
return (
<StylesProvider generateClassName={generateClassName}>...</StylesProvider>
);
}
由于标识符仅附加在类名的末尾,因此您可以使用CSS 选择器来匹配所有以您尝试定位的类名开头的元素。
div[class^='myclass'], div[class*=' myclass']{
color: #F00;
}
假设您不想以MuiOutlinedInput-root
类名为目标。
使用一个简单的辅助函数getSelector()
,您可以像这样完成它:
import {makeStyles} from '@material-ui/core/styles';
const getSelector = (className) => `& div[class^='${className}'], div[class*=' ${className}']`;
const useStyles = makeStyles((theme) => ({
input: {
[getSelector('MuiOutlinedInput-root')]: { // this will generate the selector
...
},
'& input': {
...
}
},
}));
注意:以下语法仅适用于ES6和Babel
{
[keyVariable]: value,
}