reactjs - Material UI - 自动完成样式
问题描述
我正在尝试设置填充样式,以便在当前被此样式覆盖的 AutoComplete Material UI 组件中将图标推到最右侧:
.MuiAutocomplete-hasPopupIcon.MuiAutocomplete-hasClearIcon .MuiAutocomplete-inputRoot[class*="MuiOutlinedInput-root"]
这是代码:
const useStyles = makeStyles(theme => ({
inputRoot: {
color: "blue",
fontFamily: "Roboto Mono",
backgroundColor: fade("#f2f2f2", 0.05),
"& .MuiOutlinedInput-notchedOutline": {
borderWidth: '2px',
borderColor: "blue"
},
"&:hover .MuiOutlinedInput-notchedOutline": {
borderWidth: "2px",
borderColor: "blue"
},
"&.Mui-focused .MuiOutlinedInput-notchedOutline": {
borderWidth: "2px",
borderColor: "blue"
}
}
}));
const textStyles = makeStyles({
formControlRoot: {
fontFamily: "Roboto Mono",
width: "50vw",
color: "#ffffff",
borderRadius: "7px",
position: "relative",
"& label.Mui-focused": {
color: "blue"
},
},
inputLabelRoot: {
color: "#ffffff",
fontFamily: "Roboto Mono",
"&.focused": {
color: "#ffffff"
}
},
});
export default function ComboBox() {
const classes = useStyles();
const textClasses = textStyles();
return (
<Autocomplete
id="combo-box-demo"
classes={classes}
// options={top100Films}
getOptionLabel={option => option.title}
renderInput={params => {
return (
<TextField
{...params}
label="Combo box"
variant="outlined"
classes={{ root: textClasses.formControlRoot }}
fullWidth
InputProps={{
...params.InputProps,
endAdornment: (
<InputAdornment position="end">
<SearchIcon />
</InputAdornment>
)
}}
InputLabelProps={{ classes: {root: textClasses.inputLabelRoot}}}
/>
);
}}
/>
);
}
这是结果:
解决方案
您正在为 指定endAdornment
,Input
但Autocomplete
也尝试指定 endAdornment。你endAdornment
赢了,但Autocomplete
仍在尝试应用与其最终装饰相关的所有 CSS(弹出图标和清除图标的空间)。
您可以通过传递关闭这些功能的道具来关闭与自动完成的结束装饰相关的 CSS:
<Autocomplete
disableClearable
forcePopupIcon={false}
推荐阅读
- regex - 错误:未声明的字段:nre.RegexMatch 类型的“捕获”
- javascript - React Hook 条件渲染
- mongodb - Camel 3.5 MongoDB 组件和带有简单 String _id 字段的 findById
- linux - 有没有办法在不清除屏幕的情况下替换行?
- c - 如何从 C 中的字符串中删除某些字符?
- function - golang函数在传入参数中返回值
- javascript - 使用 javascript 和 css 将任务列表添加到我的 HTML
- spring-boot - Spring Boot 2.3+ 不再打印有用的错误信息以进行验证(来自 MethodArgumentNotValidException)
- python - 无法导入名称“MultiRNNCell”
- typescript - Vue @Watch 未触发布尔值更改