Метка множественного выбора перечеркнута контуром поля ввода

Я сделал список множественного выбора с помощью Material-UI. Но когда я выбираю элемент, метка должна сжиматься и вписываться в контур поля ввода. Проблема в том, что контур остается прежним, а этикетка за ним сжимается.

Я попытался найти решение в документации по Material-UI. Похоже, что не существует какого-либо варианта с выделенным списком множественного выбора. Поэтому мне интересно, связано ли это с отсутствием описанного варианта списка множественного выбора или с чем-то еще.

<FormControl
   variant = "outlined"
   fullWidth
>
   <InputLabel
      ref = {ref => {
         this.InputLabelRef = ref;
      }}
      htmlFor = "members"
      error = {this.props.touched.members && Boolean(this.props.errors.members)}
   >
      Members
   </InputLabel>
   <Select
      onChange = {this.change.bind(null, "members")}
      multiple
      value = {this.state.members}
      error = {this.props.touched.members && Boolean(this.props.errors.members)}
       input = {
          <OutlinedInput
              labelWidth = {0}
              name = "members"
              id = "members"
          />
        }
     >
     <MenuItem value = {'Baspa'}>Baspa</MenuItem>
     <MenuItem value = {'Plorky'}>Plorky</MenuItem>
     <MenuItem value = {'Rizzels'}>Rizzels</MenuItem>
    </Select>

Еще я сделал CodeSandBox: https://codesandbox.io/s/jnlx1vky39

Вот как это выглядит:

Метка множественного выбора перечеркнута контуром поля ввода

https://imgur.com/a/Wpf7OE0

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
5
0
2 341
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам не хватало пары частей, показанных в документации, которые позволяют контуру знать ширину метки:

  componentDidMount() {
    this.setState({
      labelWidth: ReactDOM.findDOMNode(this.InputLabelRef).offsetWidth
    });
  }
... 
 <OutlinedInput labelWidth = {this.state.labelWidth} name = "members" id = "members" />

Вот полный код:

Edit r1r9wxmljo

Другие вопросы по теме