Как применить стиль к NoOptionsText в материале автозаполнения-пользовательский интерфейс

#reactjs #autocomplete #material-ui #styles

#reactjs #автозаполнение #материал-пользовательский интерфейс #стили

Вопрос:

я хочу изменить цвет без параметров. не могли бы вы мне помочь

ссылка на изображение

 <Autocomplete
  id="id"
  options={options}
  limitTags={3}
  value={value}
  noOptionsText="no options"
  getOptionLabel={option => option}
  onChange={onChange}
  renderInput={params => (
   <TextField
   {...params}
   label=" title"
   placeholder="Please select"
   />
 )}
/>
  

Ответ №1:

В mui v5 существуют разные подходы

Решение 1 Использовать ThemeProvider

 import { createTheme, ThemeProvider } from '@mui/material/styles';

const theme = createTheme({
  components: {
    // Name of the component
    MuiAutocomplete: {
      styleOverrides: {
        // Name of the slot
        noOptions: {
          // Some CSS
          color: "red",
          backgroundColor: "pink",
        },
      },
    },
  },
});


<ThemeProvider theme={theme}>
<Autocomplete
  id="id"
  options={options}
  limitTags={3}
  value={value}
  noOptionsText="no options"
  getOptionLabel={option => option}
  onChange={onChange}
  renderInput={params => (
   <TextField
   {...params}
   label=" title"
   placeholder="Please select"
   />
 )}
/>
</ThemeProvider>
  

Решение 2
Использовать класс css для noOption prop, который .MuiAutocomplete-noOptions

файл css:

 .MuiAutocomplete-noOptions {
    background-color: pink;
    color: red!important;
}
  

Ответ №2:

Вы можете использовать classes реквизиты для применения стилей к определенному подкомпоненту компонента Autocomplete

 const useStyles = makeStyles({
  noOptions: {
    color: "red",
    backgroundColor: "pink"
  }
});

export default function Demo() {
  const styles = useStyles();
  return (
    <Autocomplete
      classes={{
        noOptions: styles.noOptions
      }}
      options={top100Films}
      renderInput={(params) => (
        <TextField {...params} label="Combo box" variant="outlined" />
      )}
    />
  );
}
  

Живая демонстрация

Редактировать 63949999/как применить стиль к тексту nooptionstext в autocomplete-material-ui/63950742#63950742