reactjs - 如何更改向下箭头文本字段材料ui的颜色
问题描述
我有一个选择文本文件,当我悬停或选择文本文件时,我希望向下箭头颜色也改变,这是我的文本文件和样式
风格
const styles = theme => ({ icon: { fill: themeStyle.textColor, }, underline: { '&:before': { borderBottomColor: themeStyle.textFieldUnderLineColor, }, '&:after': { borderBottomColor: themeStyle.tabIndicatorProps, color: themeStyle.tabIndicatorProps, }, '&:hover:before': { borderBottomColor: [themeStyle.underLineSearchTextFieldColor, '!important'], }, color: themeStyle.titleTextColor, }, notchedOutline: {}, outlinedInput: { '&$focused $notchedOutline': { border: `2px solid ${themeStyle.tabIndicatorProps}` }, backgroundColor: themeStyle.bkgBodyColor }, focused: {}, notchedOutline: {}, })
文本域
<TextField select SelectProps={{ native: true, }} className = {classes.textField} InputLabelProps={{ classes: { root: classes.cssLabel, focused: classes.cssFocused, } }} InputProps={{ classes:{ underline: classes.underline, icon: classes.icon } }} type= 'select' > {Tools.GetEnumSelectOptionsAddAll(APP_Enums.DoModeEnum)} </TextField>
现在我想在悬停或选择时更改它的颜色或...
解决方案
您应该使用该SelectProps
属性来提供所需的样式。
这是一个工作示例 - https://codesandbox.io/s/material-demo-select-6lewu
参考下文,
const useStyles = makeStyles((theme) => ({
root: {
"& .MuiTextField-root": {
margin: theme.spacing(1),
width: "25ch"
}
},
icon: {
color: "red"
}
}));
export default function MultilineTextFields() {
const classes = useStyles();
const [currency, setCurrency] = React.useState("EUR");
const [isMouseOver, setMouseOver] = React.useState(false);
const handleChange = (event) => {
setCurrency(event.target.value);
};
const handleMouseEnter = () => {
setMouseOver(true);
};
const handleMouseLeave = () => {
setMouseOver(false);
};
return (
<form className={classes.root} noValidate autoComplete="off">
<div>
<TextField
id="standard-select-currency-native"
select
label="Native select"
value={currency}
onChange={handleChange}
onMouseEnter={handleMouseEnter}
onMouseLeave={handleMouseLeave}
SelectProps={{
native: true,
classes: {
icon: isMouseOver ? classes.icon : null
}
}}
helperText="Please select your currency"
>
{currencies.map((option) => (
<option key={option.value} value={option.value}>
{option.label}
</option>
))}
</TextField>
</div>
</form>
);
}
除此之外,我使用onMouseEnter
和onMouseLeave
触发器来应用您在鼠标悬停时必须更改图标颜色的特殊要求。
推荐阅读
- asp.net-core - (以编程方式)将 .net 核心应用程序自行安装为 Windows 服务
- modelica - 突然输入如何影响 Modelica 中的模拟
- compiler-errors - 点子计算器意外结局编辑
- mysql - 使用分隔符在 sql 中的集合中检索数据
- cordova - 使用“离子科尔多瓦构建浏览器”构建后,我可以摆脱浏览器询问权限吗?
- github - PyCharm 请求 GitHub 登录
- session - 在 AEM 中关闭资源解析器对象后会话已关闭
- opengl - glOrtho 的问题:曲线从场景中消失
- java - 即使将 vorbisspi 添加到类路径后,音频文件格式仍不受支持
- html - “document.getElementById()”的结果为 Null