reactjs - Material UI - 自动完成样式

标签 reactjs autocomplete material-ui textfield styling

我正在尝试设置填充样式,以便将图标推送到 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}}}
          />
        );
      }}
    />
  );
}


这是结果:

enter image description here

最佳答案

您正在指定 endAdornmentInput ,但是 Autocomplete also tries to specify the endAdornment .您的 endAdornment正在获胜,但Autocomplete仍在尝试应用与其结束装饰相关的所有 CSS(弹出图标和清除图标的空间)。

您可以通过传递关闭这些功能的 Prop 来关闭与自动完成的结束装饰相关的 CSS:

    <Autocomplete
      disableClearable
      forcePopupIcon={false}

Edit Autocomplete with custom endAdornment

关于reactjs - Material UI - 自动完成样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61256685/

相关文章:

node.js - 让 Jest 在测试时忽略 .less 导入

express - React 服务器/客户端渲染

java - Eclipse Java 自动完成当前类方法

autocomplete - 谷歌地方 API : Is the option to switch off location biasing been removed from auto complete API?

reactjs - 无法安装@material-ui/pickers(ERESOLVE无法解析依赖关系树)

reactjs - 如何在material-ui中同时激活所有步骤?

javascript - 如何使 SVG 元素在 React 上可点击?

python - Visual Studio Code - 具有自动完成功能的 Python 交互式数据科学 REPL

javascript - 使用 Material UI 菜单时在控制台中收到警告。建议我解决方案。我在文本对象中使用 HTML

javascript - Material UI - 工具提示意外显示