当前位置: 首页 > 面试题库 >

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

公西飞鸾
2023-03-14
问题内容

我们想更改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)。

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

感谢任何建议。


问题答案:

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

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
];



 类似资料:
  • 我正在使用MaterialComponents大纲TextInputLayout。我需要在提示文本上设置不同的颜色: “Main”提示(当TextInput中没有文本时)-->带有60%alpha的黑色 浮动提示-->与轮廓相同的颜色(即非活动时为colorPrimary,活动时为colorAccent) 我正在使用Android:TextColorHint设置主提示颜色,App:HintText

  • 问题内容: 我正在尝试从Material-UI模仿概述的文本字段,但是我不知道如何在标题文本后面隐藏边框。 在下图中,请注意如何从Material-UI库中获取“到期日期/时间”,标题隐藏了边框,但当我尝试使用自定义组件模仿它时,我只是无法隐藏边框。 另外,是否有更好的方法来使用此轮廓设计,而不是仅使用CSS来实现? 我当前的组件看起来像这样: 问题答案: 更新 在许多情况下,我的后续答案(避免使

  • 我要做的是: 我试图向用户提供一个选项,通过传入一个包含属性的样式对象,如、、、等,为和中的单元格着色,从而为我的组件提供自定义样式。 在组件中,我使用了,其方式与在此material-ui文档示例中所做的类似:https://material-ui.com/components/tables/#sorting-amp-selection 我希望自定义颜色的文本和箭头图标在悬停和当活动的基础上,由

  • 如何将标题字体颜色更改为白色,填充为绿色?以下是我正在使用的类: 我相信,这是必须插入的代码。

  • 填充顶点构成的轮廓 通过下面代码定义了6个顶点坐标,也可以说是5个,最后一个和第一个是重合的,构成一个五边形区域。然后使用这一组二维顶点坐标作为Shape的参数构成一个五边形轮廓。把五边形轮廓Shape作为ShapeGeometry的参数,可以根据轮廓坐标计算出一系列三角形面填充轮廓,形成一个平面几何体。 var points = [ new THREE.Vector2(-50, -50),

  • 问题内容: 我有一个文本框,我想在其上应用自动完成功能。我正在使用以下插件: 自动压缩 它可以正常工作,但是一旦我将其与AngularJS结合使用,它就会停止工作: 我有以下代码: 和jfiddle的链接如下: 小提琴 如您所见,虽然没有Angular,但自动完成功能不起作用。 有人可以帮忙吗? 问题答案: 为您服务的傻瓜 http://plnkr.co/edit/5XmPfQ78vRjSrxE0