Изменение цвета заполнителя по умолчанию в react-virtualized-select

Попытался изменить цвет по умолчанию заполнителя моего элемента react-virtualized-select, используя как input::-webkit-input-placeholder, так и свойство singleValue, но это не работает. Я даже пытался обернуть весь код в пользовательскую тему, где основным цветом был синий, но это тоже не сработало. Я хочу, чтобы он изменил его на цвет, который находится в заполнителе текстового поля.

import "react-select/dist/react-select.css";
import "react-virtualized/styles.css";
import "react-virtualized-select/styles.css";
import "material-components-web/dist/material-components-web.css";
import "./react-select.css";

import React from "react";
import ReactDOM from "react-dom";
import Select from "react-virtualized-select";
import TextField from "rmwc/TextField";

const colourStyles = {
  singleValue: styles => ({ ...styles, color: "blue" })
};

const options = Array.from(new Array(10), (_, index) => ({
  label: `Item ${index}`,
  value: index
}));

class Foo extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      option: undefined
    };
  }
  render() {
    return (
      <React.Fragment>
        <Select
          className = {"mdc-react-select"}
          value = {this.state.option}
          onChange = {option => this.setState({ option })}
          styles = {colourStyles}
          options = {options}
          inputRenderer = {props => {
            return (
              <TextField
                {...props}
                fullwidth
                ref = {undefined}
                inputRef = {props.ref}
                placeholder = {"Farm"}
                required
                value = {
                  props.value ||
                  (this.state.option ? this.state.option.label : undefined)
                }
              />
            );
          }}
        />
        <br />
        <br />

        <div>
          <TextField
            ref = {undefined}
            label = {"Farm"}
            value = {this.state.option ? this.state.option.label : undefined}
            style = {{ width: "100%" }}
          />
        </div>


      </React.Fragment>
    );
  }
}
ReactDOM.render(<Foo />, document.getElementById("root"));

CSS:

body {
  font-family: "Roboto";
}
.mdc-react-select .Select-placeholder,
.mdc-react-select .Select-value {
  display: none;
}

.mdc-react-select .Select-control {
  background-color: transparent;
  border-color: none;
  border-radius: 0;
  border: none;
  color: #333;
  cursor: default;
  display: table;
  border-spacing: 0;
  border-collapse: separate;
  height: 36px;
  outline: none;
  overflow: hidden;
  position: relative;
  width: 100%;
  box-shadow: none !important;
}

.mdc-react-select .Select-input {
  opacity: 1 !important;
  width: 100%;
}

.mdc-text-field .mdc-line-ripple{
  background-color: rgb(23,87,170);
}

.mdc-floating-label .mdc-floating-label--float-above{
  color: rgb(23,87,170) !important;
}

.mdc-text-field--focused:not(.mdc-text-field--disabled) .mdc-floating-label{
  color:rgb(23,87,170) !important;
}

/* .mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mdc-text-field__input:hover{
    color:rgb(23,87,170) !important;
} */
/* input::-webkit-input-placeholder {
  color: #999;
} */
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
1
0
1 087
1

Ответы 1

Попробуй это:

.mdc-react-select .Select-input {
color: red;
}

.mdc-react-select .Select-placeholder {
color: red;
}

Почему вы даете этот стиль? .mdc-react-select .Select-placeholder, .mdc-react-select .Select-value { display: none; }

gikall 02.04.2019 08:54

Потому что, если бы не указанный выше css, он отображал бы дополнительный заполнитель «Выбрать ...» в дополнение к моему пользовательскому заполнителю «фермы».

22anonymous 02.04.2019 09:01

Теперь я вижу, что у вас есть TextField внутри Select, поэтому приведенный выше код не работает. Можете привести живой пример?

gikall 02.04.2019 09:04

Я хочу, чтобы цвет как строки, так и заполнителя был синим, а не фиолетовым как для выбора, так и для текстового поля.

22anonymous 02.04.2019 10:41

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