更改 MUI 自动完成选项的颜色

Rei*_*res 6 css reactjs material-ui

我正在使用AutocompleteMaterial UI,并且有一个带有颜色属性的列表。我必须使用选项背景中的相应颜色逐个渲染选项。

这是一个例子:

import React from "react";
import TextField from "@material-ui/core/TextField";
import Autocomplete from "@material-ui/lab/Autocomplete";

export default function ComboBox() {
  return (
    <Autocomplete
      id="combo-box-demo"
      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, color: '#FF0000' },
  { title: "The Godfather", year: 1972, color: '#FF5555' },
  { title: "Avatar", year: 2010, color: '#FFFFFF' },
  // Plus a bunch more
];
Run Code Online (Sandbox Code Playgroud)

Nea*_*arl 10

您可以renderOption在最新版本的 MUI 中用于有条件地渲染每个选项的样式。

<Autocomplete
  renderOption={(props, option) => {
    const { title, color } = option;
    return (
      <span {...props} style={{ backgroundColor: color }}>
        {title}
      </span>
    );
  }}
  {...}
/>
Run Code Online (Sandbox Code Playgroud)

现场演示

编辑 64171767/更改材质颜色 UI 自动完成选项