在Material-ui自动完成组件上设置文本颜色,轮廓和填充

格雷格豪斯

我们想更改Material-ui自动完成组件上的文本颜色,轮廓和填充。

代码如下:

              <FormControlLabel
                label="Please enter desired service:"
                labelPlacement="start"
                control={
                  <Autocomplete
                    id="services"
                    options={props.serviceTypes}
                    getOptionLabel={option => option.name}
                    className={classes.inputRoot}
                    style={{ width: 400, paddingLeft: 20 }}
                    renderInput={params => (
                      <TextField
                        {...params}
                        label=""
                        className={classes.inputRoot}
                        variant="outlined"
                        fullWidth
                      />
                    )}
                    onChange={setService}
                  />
                }
              />

我们可以通过这样的代码更改TextInput颜色

                        InputProps={{
                          className: classes.inputColor
                        }}

但是以这种方式应用样式会影响“自动完成”功能(它会失去自动完成功能,其行为类似于普通的TextField)。

我们尝试了许多style和className选项都无济于事。

感谢任何建议。

瑞安·科格斯威尔(Ryan Cogswell)

这是您尝试过的方法(在样式上可以使用,但破坏了自动完成功能):

renderInput={params => (
    <TextField
       {...params}
       label=""
       InputProps={{
          className: classes.inputColor
       }}
       variant="outlined"
       fullWidth
    />
)}

上面的方法会引起问题,因为Autocomplete组件将InputProps作为params传递的一部分传递给,TextField因此InputProps传递的显式将完全替换InputPropsin params

相反,您应该将inputRoot CSS类用于Autocomplete组件

<Autocomplete classes={{inputRoot: classes.inputRoot}} .../>

下面是一个设置文本颜色并自定义轮廓颜色的工作示例。

import React from "react";
import TextField from "@material-ui/core/TextField";
import Autocomplete from "@material-ui/lab/Autocomplete";
import { makeStyles } from "@material-ui/core/styles";

const useStyles = makeStyles(theme => ({
  inputRoot: {
    color: "purple",
    "& .MuiOutlinedInput-notchedOutline": {
      borderColor: "green"
    },
    "&:hover .MuiOutlinedInput-notchedOutline": {
      borderColor: "red"
    },
    "&.Mui-focused .MuiOutlinedInput-notchedOutline": {
      borderColor: "purple"
    }
  }
}));

export default function ComboBox() {
  const classes = useStyles();
  return (
    <Autocomplete
      id="combo-box-demo"
      classes={classes}
      options={top100Films}
      getOptionLabel={option => option.title}
      style={{ width: 300 }}
      renderInput={params => {
        return (
          <TextField
            {...params}
            label="Combo box"
            variant="outlined"
            fullWidth
          />
        );
      }}
    />
  );
}

const top100Films = [
  { title: "The Shawshank Redemption", year: 1994 },
  { title: "The Godfather", year: 1972 },
// Plus a bunch more
];

编辑自定义的自动完成

相关答案:

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Materialik中使用Material-UI的自动完成组件

在 Material-UI 的自动完成组件的开头添加图标

如何动态选择Material-UI自动完成组件中的默认选项?

如何解决React Material UI自动完成组件的标签重叠问题

material-ui在自动完成组件中添加搜索图标

如何创建 Material UI 自动完成组件来处理 graphql 查询?

如何更改Material UI React输入组件的轮廓颜色?

如何清除material-ui自动完成字段中的文本?

Material UI 无法设置自动完成的默认值

设置Material UI自动完成的默认值

Material UI 反应自动完成设置不同的标签和不同的值

如何设置类似于Material-UI的轮廓文本字段的静态轮廓div?

Material UI自动完成上的打字稿平等问题

自动完成未按预期呈现 Material UI

Material UI自动完成的多行选项

Material-UI-TypeScript-通用自动完成

Material UI - 自动完成默认边距?

Material-UI自动完成渲染值

Material-ui 自动完成过滤列表

使用 Material UI 响应自动完成

打开下拉菜单(当前为蓝色)时如何更改Material UI Select组件的轮廓颜色(在轮廓模式下)

设置 Material UI Snackbar 的背景颜色

Material-UI - 设置 ListItemSecondaryAction 的选定颜色

Material-UI自动完成和TextField触发Google自动完成

Material-UI 组件上的渐变边框

使用Angular Material以编程方式设置自动完成文本框文本

如何在Material-UI自动完成控件中自定义填充?

在 makeStyles 主题 material-ui 上设置和高度

如何更改 Material-UI 的自动完成中的复选框颜色?