Как изменить цвет элемента input?

  • 12 сентября 2023 г. 9:57
Ответы на вопрос 2
Для изменения цвета элемента input в react-select можно использовать стили. В коде выше используется класс "select__control", поэтому можно добавить стили для этого класса, чтобы изменить цвет элемента input.

1. Создайте файл стилей (например, "styles.css") и добавьте следующий код:

```css
.select__control input {
  /* your styles for input element */
  color: red; /* пример цвета текста */
  background-color: yellow; /* пример цвета фона */
}
```

2. Подключите файл стилей в компоненте:

```jsx
import './styles.css';
```

3. Теперь элемент input будет иметь указанный вами цвет.

Для добавления/удаления класса при выборе значения в выпадающем списке react-select, вы можете использовать состояние компонента, чтобы изменить класс у элемента input.

1. Добавьте состояние "isSelected" в компонент:

```jsx
const [isSelected, setIsSelected] = useState(false);
```

2. В функции onChange, добавьте обновление состояния после выбора значения:

```jsx
const onChange = (selectedOption) => {
  setSelectedOption(selectedOption);
  setIsSelected(true);
};
```

3. Измените класс у элемента input в зависимости от состояния "isSelected". Для этого, измените код return в компоненте следующим образом:

```jsx
return (
  <Select
    className={`select__control ${isSelected ? 'selected' : ''}`}
    // остальные свойства компонента
  />
);
```

4. В файле стилей (styles.css) добавьте стили для класса "selected" в зависимости от того, как вы хотите изменить цвет элемента input при выборе значения:

```css
.select__control.selected input {
  /* your styles for input element when selected */
  color: blue; /* пример цвета текста */
  background-color: green; /* пример цвета фона */
}
```

Теперь при выборе значения в выпадающем списке react-select, класс "selected" будет добавлен к элементу input, и его цвет будет изменен в соответствии со стилями для этого класса.
Можно взять следующую конструкцию: