Метод
См. Документ: Reaction-Select Настройка стилей
Вы можете переопределить предоставленные по умолчанию стили в разных доменах.
В этом случай, базовый контроль будет достаточно хорош.
const customStyles = stateValue => ({
control: (provided, state) => ({
...provided,
backgroundColor: stateValue ? "gray" : "white"
})
});
Демо
Источник
import React, { useState } from "react";
import Select from "react-select";
const options = [
{ value: "chocolate", label: "Chocolate" },
{ value: "strawberry", label: "Strawberry" },
{ value: "vanilla", label: "Vanilla" }
];
const customStyles = value => ({
control: (provided, state) => ({
...provided,
alignItems: "baseline",
backgroundColor: value ? "gray" : "white"
})
});
const App = () => {
const [selected, setSelected] = useState("");
const onChange = e => {
setSelected(e.value);
};
const onClickButton = () => {
setSelected("");
};
const displayItem = selected => {
const item = options.find(x => x.value === selected);
return item ? item : { value: "", label: "" };
};
return (
<>
<Select
options={options}
styles={customStyles(selected)}
onChange={onChange}
value={displayItem(selected)}
/>
<button onClick={onClickButton}> Clear Selection </button>
</>
);
};
export default App;