Как решить проблему перекрытия меток для компонента автозаполнения пользовательского интерфейса React Material

Я новичок в реагировании на материальный интерфейс. Мне нужна плавающая метка для компонента автозаполнения. но после выбора любого значения в параметрах автозаполнения метка должна оставаться наверху. Пожалуйста, перейдите к коды, чтобы увидеть актуальную проблему.

заранее спасибо

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

Ответы 1

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

Вам необходимо обновить свойство элемента select после того, как выбор будет сделан. Для этого я использую состояние shrink, которое изначально является false, которое установит true после выбора элемента. Если состояние shrink - true, то InputLabelProps устанавливается с {shrink: true}. В противном случае устанавливается пустой объект.

state = {
    single: null,
    multi: null,
    shrink:false //Newly added
};    

handleChangeEvent = name => value => {
    this.setState({
       [name]: value
    });

    this.setState({shrink:true}); //Newly added
}; 

<Select
    classes = {classes}
    styles = {selectStyles}
    options = {suggestions}
    components = {components}
    value = {this.state.single}
    onChange = {this.handleChangeEvent("single")}
    placeholder = "Search a country (start with a)"
    textFieldProps = {{
        label: "Label",
        InputLabelProps: this.state.shrink?{shrink:true}:{} //Modified line
    }}
/>

Демо

Я хочу, чтобы метка с плавающей запятой не была статической, так что, если значение не выбрано или пусто, метка будет занимать позицию заполнителя. вот так material-ui.com/demos/text-fields/#textfield

Yasin 28.11.2018 10:44

Теперь ответ обновлен. Это должно работать как задумано.

Shashidhara 28.11.2018 10:56

Я слышал, что это ошибка. Кто-нибудь знает, решена ли эта ошибка?

user7334203 15.11.2019 13:46

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